javascript - 事件触发的数量是否与 Jquery 中事件绑定(bind)的数量相关?

标签 javascript jquery events jquery-mobile

我经常会在 Jquery/Jquery Mobile 中多次触发一些事件绑定(bind),特别是在使用新的 Jquery on() 与 Jquery live() 时;

示例:

   $(document).on("pagebeforechange", function (e, data) {
      // stuff
      });

我想知道以下问题:
如果我有像上面这样的多个绑定(bind),它们会分别触发一次还是会根据我使用绑定(bind)的次数触发多次。

示例:
3 个 document/pagebeforechange 监听器 = 每个监听器 1x
3 个 document/pagebeforechange 监听器 = 每个监听器 3x

感谢您的澄清!

最佳答案

每次调用 .bind().on().delegate() 等都会创建一个新的、唯一的事件处理程序并排队。

所以是的,每次调用这些方法都会触发一个新的处理程序。不要马虎。

例如

<body>
    <div>
        <span>foo</span>
    </div>
</body>

$('span').on('click', function() {
    alert('span #1');
});

$('span').on('click', function() {
    alert('span #2');
});

当我们单击跨度时,这会提醒 span #1,然后提醒 span #2

关于javascript - 事件触发的数量是否与 Jquery 中事件绑定(bind)的数量相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770190/

相关文章:

javascript - 在 debian Nginx 上安装 Closure Compiler

javascript - backbone.js model.save 没有设置 id

php - 页面上一组 <li> 中的值在一定时间后自动刷新

java - setOnClickListener 从未触发 - Android/Eclipse

javascript - 帮助!? IE9 : onChange event doesn't fire when value is modified by an onkeydown script and user tabs away

javascript - 使用 jquery(简单的文本编辑器)向 textarea 添加值

javascript - 模板中被调用两次的 Knockout JS `hasFocus`

javascript - 有什么方法可以暂停for循环直到变量为真

jquery - 如何使用jquery中的.hover事件获取html中的坐标?

VB.NET - 将事件作为参数传递