1

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

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

因为我只想执行一次动作。现在我想bind重新

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

但只有当用户点击它时,至少是第一次。

我怎样才能做到这一点?

4

2 回答 2

6

您可以使用 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/

于 2013-03-23T18:14:44.157 回答
1
$('#mydiv').one('click', function() {
    // ...
    // code here for action-A, on first click
    // ...
    $(this).on('click', function() {
        // ...
        // code here for action-B, on subsequent clicks
        // ...
    });
});
于 2013-03-23T18:25:07.023 回答