3

これを見てください:http://jsfiddle.net/9c4xG/

$('.container').on('change.namespace focusout.namespace', '.item', function(event) {
    $('<p>', {
        'text': 'event: ' + event.type   
    }).appendTo('.container');
});

ケース 1: 入力にフォーカスがあるときにタブを押すと、1 つのイベント (フォーカスアウト) がトリガーされます。ケース 2: 入力に任意の単語を入力してタブを押すと、2 つのイベント (フォーカスアウト、変更) がトリガーされます。

最初のイベントがトリガーされたときに、ケース 2 ですべての同様のイベントをブロックする方法。

複数のイベントがトリガーされた場合、これらのイベント (focusout、change、..) の 1 つだけを使用する普遍的な方法はありますか? 名前空間または現在のハンドラーに対して他のものを無効にします。

すみません、愚かな英語です。

4

2 に答える 2

1

フラグをセマフォとして使用する ...

$('YourInput').on('events',function(e) {
    var t = $(this), data = t.data('flag') || false;
    if (data) {
        return;
    }
    // Locking semaphore
    t.data('flag', true);
    // Your code here
    // Free semaphore
    t.data('flag', false);
});
于 2013-10-22T15:18:04.200 に答える