单击后,如何设置事件处理程序以在后续单击时触发?

时间:2014-02-11 09:00:52

标签: javascript jquery javascript-events event-handling

我有一段使用JQuery的JavaScript,看起来有点像这样:

$('.myclass').on('click', function() {
   // Do Stuff
   $(document).on('click.mynamespace', function() {
       // Do More Stuff
       $(document).off('click.mynamespace');
   });
});

点击.myclass后,我希望它能为Do Stuff,然后将处理程序附加到文档上的click事件,并在后续点击上执行更多功能 - 但它似乎第一次点击时会发生Stuff和More Stuff。

附加第二个事件处理程序时,click事件是否仍在触发?我如何达到预期的效果?

1 个答案:

答案 0 :(得分:0)

尝试调用stopPropagation以防止事件在第一次点击时冒泡到文档中:

$('.myclass').on('click', function(e) {
    e.stopPropagation();
    // Do Stuff
    $(document).on('click.mynamespace', function() {
        // Do More Stuff
        $(document).off('click.mynamespace');
    });
});