注意:这个问题被标记为已解决一次,但它发现升级到最新的 jQuery 只修复了一个问题。有关剩余问题,请参阅下面的更新问题。
大家好,
我刚刚遇到了 jQuery.Tipsy 的一个奇怪问题。
这是一个简化的演示小提琴:http: //jsfiddle.net/6nWtx/7/
如您所见,最后添加的a.tipsy2
元素并没有得到提示。.tipsy2
元素在函数中被提示,jQuery.each()
此时我遇到了问题。没有each()
它的工作。不幸.each()
的是,在调用tipsy()
.
有什么建议吗?
这里是 Tipsy 的源代码:https ://github.com/jaz303/tipsy/blob/master/src/javascripts/jquery.tipsy.js
恕我直言,问题是使用jQuery.each()
和 Tipsy 选项的组合live:true
更新:
在调用之前我想做的另一件事.tipsy()
是检查一些可选配置。
例如:<a href="#" title="This is a tooltip" class="tipsyfy delayed">Help</a>"
在此示例中,我将向 Tipsy 添加以下选项:delayIn:1000
如果没有delayed
与元素关联的类,则此参数将为delayIn:0
.
使用相同的逻辑,我还想指定以下类:show-top, show-left, show-right, show-bottom
对于 Tipsy 选项称为gravity
.
例子:<a href="#" title="This is a tooltip" class="tipsyfy delayed show-left">Help</a>"
完整代码:
$(".tipsyfy").each(function () {
var a = "s",
b = 0;
if ($(this).hasClass("show-left")) a = "w";
else if ($(this).hasClass("show-down")) a = "n";
else if ($(this).hasClass("show-right")) a = "e";
if ($(this).hasClass("delayed") && $(this).attr("data-delayIn") != null) b = $(this).attr("data-delayIn");
$(this).tipsy({
gravity: a,
fade: true,
live: true,
delayIn: b
})
})
这是一个完整的jsFiddle 演示,其中包含我想做的所有事情:http: //jsfiddle.net/xmLBG/1/