1

私はclickこのようにバインドしたdivを持っています:

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

アクションを1回だけ実行したいからです。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/ 2番目のシナリオの例: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 に答える