jquery привязка контента к определенной точке
У меня есть список ссылок на моем веб-сайте, что, когда пользователь нажимает на одну из них, я отображаю всплывающую подсказку с некоторыми дополнительными параметрами, ссылки отображаются в виде изображения размером 90x60, я хочу, чтобы всплывающая подсказка отображалась наверху левый угол ссылки / изображения, по которому щелкнули, как этого добиться, ниже моя текущая реализация.
$('#wrapper #content ul li a').click(function(e) {
e.preventDefault();
$('#tooltip').remove();
var url = $(this).attr('href');
$.ajax({
type: "POST",
url: url,
data: "",
success: function(html){
var popup = html;
$('#content').append(popup);
$('#tooltip').css({
position: "absolute",
top: e.pageY - 200,
left: e.pageX - 10
});
}
});
});
Любая помощь будет принята с благодарностью.
2 ответа
Для этого уже есть плагин jquery: http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
Есть больше http://visionwidget.com/inspiration/web/495-jquery-tooltip-plugins.html
Или вы можете просто написать несколько простых jQ-скриптов:
(HTML)
<div class="tooltipped box"></div>
<div class="tooltipped box"></div>
(ДС)
$(document).ready(function() {
$('.tooltipped').click(function(){
$('#tooltip').remove();
$('body').append('<div id="tooltip" class="tooltip">This is tooltip</div>');
var p = $(this).position();
$('#tooltip').css({top: p.top, left: p.left+$(this).width()});
});
});
(CSS)
.box { border: 1px solid green; width: 90px; height: 60px; }
.tooltip { border: 1px solid red; width: 50px; height: 50px; position: absolute; }
Используйте qTip.
$(document).ready(function() {
$("#qtip").qtip({
content: 'ToolTip',
style: {
name: 'red'
},
show: 'mousedown',
hide: 'mouseout',
position: {
target: 'mouse',
adjust: {
mouse: true,
x: -180,
y: -30,
}
}
});
});
Обновление: вот мой JsFiddle