我正在尝试构建一个可缓存的Jquery工具提示。 当我将鼠标悬停在某个元素上时,此工具提示会出现,并保留 如果我选择将鼠标悬停在工具提示本身上。 只有当我将鼠标悬停在原件上时,工具提示才会消失 元素或来自工具提示体。
根据我发现的一个例子,我设法创建了这种行为,但是 因为我是Jquery的新手,所以我很高兴听到你的评论 改善功能。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery-1.2.6.min.js"></script>
<style>
#tooltip{
position:absolute;
border:1px solid #333;
background:#f7f5d1;
padding:2px 5px;
color:#333;
display:none;
text-align: left;
}
</style>
</head>
<body>
<script type="text/javascript">
jQuery.fn.extend({
'tooltip': function(text){
xOffset = 10;
yOffset = 20;
var that = this;
$(this).mouseover(function(e){
this.t = text;
$("body").append("<div id='tooltip'>"+ this.t +"</div>");
$("#tooltip")
.css('position', 'absolute')
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast");
});
$(this).mouseout(function(){
that.hide_ff = setTimeout('$("#tooltip").hidetooltip()', 1000);
$("#tooltip").hover(function(){
clearTimeout (that.hide_ff);
},
function(){
$("#tooltip").hidetooltip()
});
//$("#tooltip").hidetooltip()
});
$(this).mousemove(function(e){
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
},
'hidetooltip': function()
{
var that = this;
$(this).remove();
if (that.hide_ff)
{
clearTimeout (that.hide_ff);
}
}
});
</script>
<a id="fff">ToolTip</a>
<div id="tooltip_share_text" style="display:none">
<div style="width: 100px;">
This is a Tooltip.
<br/>
<a href="javascript:void(0)" onclick="alert('boo')"> Click Me</a>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#fff").tooltip($('#tooltip_share_text').html());
});
</script>
</body>
</html>
最让我困扰的是两件事:
此外,我很高兴听到任何其他改进......
提前致谢, GORDI
答案 0 :(得分:2)
JQuery有一个tooltip plugin。如果您愿意自己动手,我相信您可以通过查看他们所做的事情来获取想法。
答案 1 :(得分:0)
我不确定你是否仍然对此感兴趣...已经差不多一年了o.O
但我稍微修改了你的代码:
jQuery.fn.extend({ 'tooltip': function(text){ xOffset = 10; yOffset = 20; var that = this; $(this).mouseover(function(e){ this.t = text; $("body").append(""+ this.t +""); $("#tooltip") .css('position', 'absolute') .css("top",(this.offsetTop + yOffset) + "px") /* .css("top",(e.pageY - xOffset) + "px") */ .css("left",(this.offsetLeft + this.offsetWidth) + "px") /* .css("left",(e.pageX + yOffset) + "px") */ .fadeIn("fast"); }); $(this).mouseout(function(){ that.hide_ff = setTimeout('$("#tooltip").remove()', 500); $("#tooltip").hover(function(){ clearTimeout (that.hide_ff); }, function(){ $("#tooltip").remove(); } ); }); /* $(this).mousemove(function(e){ $("#tooltip") .css("top",(e.pageY - xOffset) + "px") .css("left",(e.pageX + yOffset) + "px"); }); */ } });
答案 2 :(得分:0)
我发现qTip已满足我的所有工具提示需求: