Всплывающая подсказка JQuery, поддерживающая новую строку
Я ищу легкий плагин jquery для отображения всплывающих подсказок, когда пользователь нависает над элементом. Я бы хотел, чтобы плагин получал контент из атрибута title, а также важно, чтобы я мог создавать новые строки.
Любая помощь приветствуется!
Ответы
Ответ 1
Обычно я использую tipsy.
Вы можете добавить любой элемент html в подвыпивший, поэтому <br/>
работает.
Вам просто нужно передать параметр html
как таковой:
$('#example-html').tipsy({html: true });
Если вы не хотите использовать атрибут title
для отображения html (в этом случае он не будет проверяться), вы можете использовать параметр fallback
.
$('#example-fallback').tipsy({fallback: "Where my tooltip yo'? <br/> yay !" });
Дополнительные параметры и примеры на подвыпительной веб-странице.
Ответ 2
В jQuery 1.9 (jquery + jquery-ui) и стандартной функции toolTip используйте это:
$(".myClass").tooltip({
content: function() {
return $(this).attr('title');
}
})
И затем в заголовке вы можете использовать HTML или.
Пример:
<span class="myClass" title="Line1 <br> Line 2 <br> <b>Bold</b><br>">(?)</span>
Ответ 3
Этот код делает команду br в теге title!
$(document).tooltip({
content: function() {
var element = $(this);
return element.attr("title");
}
});
Ответ 4
http://elliotlings.com/jquery/tooltip является хорошей подсказкой для управления всплывающими подсказками, которые должны содержать больше контента
Ответ 5
Большинство браузеров (не Firefox или Opera - символы новой строки исчезнут) поддерживают символы новой строки в атрибуте title
.
Если ваш плагин не отображает их как <br />
, сначала сделайте это в тексте...
var tooltip = $('#whatever').attr('title').replace(/\n/g, '<br />');
... и затем передайте tooltip
в вашу библиотеку всплывающих подсказок (например, qTip).
Ответ 6
Простой пользовательский расширение jQuery:
$.fn.extend({
myToolTip: function() {
this.hover(
// mouse in ...
function () {
var $this = $(this);
if ($this.attr("title")) {
$this.data("$tooltip", $("<div class='myToolTip'></div>")
.text($this.attr("title"))
.html(function(i, html) { return html.replace(/\n/g, "<br/>"); })
.css({
position: "absolute",
top: $this.position().top + $this.outerHeight(),
left: $this.position().left
})
.appendTo("body")
);
}
},
// mouse out ...
function () {
var $tooltip = $(this).data("$tooltip");
if ($tooltip) $tooltip.remove();
}
);
}
});
Это создает <div class="myToolTip">
(используйте CSS для его стилизации) и позиционирует его под соответствующим элементом в mouseenter. На mouseleave всплывающая подсказка снова удаляется. Разрывы строк в элементе title
станут <br>
в содержимом <div>
, все остальное будет отображаться дословно.
Вызвать расширение через $(".someElements").myToolTip();
.
Ответ 7
Вы можете использовать этот пример:
$(document).ready(function(){
$(function () {
$('[data-toggle="tooltip"]').tooltip({
container : 'body',
html: true
});
});
});
После добавления html-тега "
" внутри заголовка:
title=text1<br/>text2