如何在事件失去绑定后才绑定它



我有一个div,我像这样绑定click:

  $("#mydiv").one('click',function(){ ... });

因为我只想执行一个操作一次。现在我想重新- bind it

  $("#mydiv").on('click',function(){ ... });

但前提是用户点击了它,至少是第一次。

我该怎么做呢?

您可以使用jQuery命名事件:

$('#mydiv').on('click.firstClick', function () {
    // do stuff for the first time
    $(this).off('click.firstClick'); // only removes this event
});
$('#mydiv').on('click', function () {
    // stuff that always happens when you click
});

如果你只是想让某件事第一次发生,然后在那之后每次都发生:

$('#mydiv').click(function () {
    // stuff that happens the first time you click
    $(this).off('click');
    $(this).click(function () {
        // stuff that happens every time after this
    });
});

第一个场景示例:http://jsfiddle.net/75HWV/第二个场景示例:http://jsfiddle.net/SbhY3/

$('#mydiv').one('click', function() {
    // ...
    // code here for action-A, on first click
    // ...
    $(this).on('click', function() {
        // ...
        // code here for action-B, on subsequent clicks
        // ...
    });
});

最新更新