2

特定の関数を 1 回だけ実行する1 つのjQuery 関数を使用したいのですが、要素がまだレンダリングされていないため、on jQuery 関数と組み合わせて使用​​します。

したがって、レンダリングされていない要素の関数をバインドするには、この方法で「on」関数を使用する必要があります。

$(document).on('click',',myElement',function(){



});

要素の最初のクリックに対してのみコードを実行するために「one」関数を実装する方法は?

4

1 に答える 1

1

この.one()メソッドは、イベント委任をサポートしています。これは、一致する要素ごとに 1 回ではなく、コールバックが 1 回実行されることを意味します。

$(document).one('click', '.myElement', function() {
    // Do stuff
});

ただし、セレクターに一致する要素ごとにイベント ハンドラーを 1 回実行する場合、最も簡単な解決策は、ハンドラーの実行後に要素にデータを追加することです。次に、そのデータの存在を確認して、イベント ハンドラーを続行するかどうかを判断できます。

$(document).on('click', '.myElement', function() {
    if (!$(this).data("done")) {
        // Do stuff
    } else {
        $(this).data("done", true);
    }
});
于 2012-10-31T10:44:08.530 に答える