【发布时间】:2012-03-02 09:31:18
【问题描述】:
注意:这个问题被标记为已解决一次,但它发现升级到最新的 jQuery 只修复了一个问题。有关剩余问题,请参阅下面的更新问题。
大家好,
我刚刚遇到了一个关于 jQuery.Tipsy 的奇怪问题。
这是一个简化的演示小提琴:http://jsfiddle.net/6nWtx/7/
如您所见,最后添加的 a.tipsy2 元素并没有得到提示。 .tipsy2 元素在 jQuery.each() 函数中被提示,此时我遇到了问题。没有each() 它可以工作。不幸的是,在调用tipsy() 之前,我需要.each() 遍历元素以执行其他操作。
有什么建议吗?
这里是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 用于名为 gravity 的 Tipsy 选项。
示例:<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/
【问题讨论】:
-
我想你需要遍历这些元素
-
是的,我想对每个元素做一些其他的事情。
标签: javascript jquery tipsy