限制 .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 实例上使用 beforeCloseclose 回调(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