如何在事件丢失之前绑定事件

时间:2013-03-23 18:08:31

标签: javascript jquery events binding

我有一个div {绑定click

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

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

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

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

我该怎么做?

2 个答案:

答案 0 :(得分:6)

你可以使用jQuery namespace events

$('#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/

答案 1 :(得分: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
        // ...
    });
});