限制 .live() 函数在 javascript 内激活的次数
limiting the number of time .live() function become active in javascript
我有一个 javascript,它的实时功能是:
$('.myid').live('click', function () {
$.jGrowl("<strong style='color: yellow;'>Hello</strong><p>The message is so and so</p>", {'life': 5000});
})
现在,每当我单击其相关的 link 具有 class 作为 "myid" 时,就会弹出一个框并显示消息。
现在的问题是如果前一个框仍然处于活动状态并且我再次单击 "myid" link 我再次在前一个框下方弹出一个弹出窗口。我点击 link 的次数与弹出窗口的次数一样多。
我希望一次只能看到一个弹出窗口。
请帮忙
jGrowl 似乎没有提供使通知模式化的选项(这并不奇怪),但是您可以在 jGrowl 实例上使用 beforeClose
或 close
回调(see the documentation 以获得详细信息)和一个标志:
var warningOpen = false;
$('.myid').live('click', function () {
if (!warningOpen) {
warningOpen = true;
$.jGrowl("<strong style='color: yellow;'>Hello</strong><p>The message is so and so</p>", {
'life': 5000,
'close': function() {
warningOpen = false;
}
});
}
});
如果你想让它特定于被点击的特定元素,你可以使用 data
。
请注意,live
多年前就已弃用,并删除了几个版本。在当今世界使用on
。
我有一个 javascript,它的实时功能是:
$('.myid').live('click', function () {
$.jGrowl("<strong style='color: yellow;'>Hello</strong><p>The message is so and so</p>", {'life': 5000});
})
现在,每当我单击其相关的 link 具有 class 作为 "myid" 时,就会弹出一个框并显示消息。 现在的问题是如果前一个框仍然处于活动状态并且我再次单击 "myid" link 我再次在前一个框下方弹出一个弹出窗口。我点击 link 的次数与弹出窗口的次数一样多。 我希望一次只能看到一个弹出窗口。 请帮忙
jGrowl 似乎没有提供使通知模式化的选项(这并不奇怪),但是您可以在 jGrowl 实例上使用 beforeClose
或 close
回调(see the documentation 以获得详细信息)和一个标志:
var warningOpen = false;
$('.myid').live('click', function () {
if (!warningOpen) {
warningOpen = true;
$.jGrowl("<strong style='color: yellow;'>Hello</strong><p>The message is so and so</p>", {
'life': 5000,
'close': function() {
warningOpen = false;
}
});
}
});
如果你想让它特定于被点击的特定元素,你可以使用 data
。
请注意,live
多年前就已弃用,并删除了几个版本。在当今世界使用on
。