0

jQuery でライブ イベント (つまり、バブル アップするリスニング イベント) を使用する場合は、次のように記述します。

$dom_element.on('click', some_selector_here, handler);

ここで、$dom_element が何らかのセレクター テストを満たしている場合にのみ、クリックをトリガーしたいとします。もちろん、いつでも次のように書くことができます。

$dom_element.on('click', some_selector_here, function() {
    if ($dom_element.is(yet_another_selector) {
         //do the job!
         ...
    } 
}

このセレクターをハンドラー ロジック以外で設定する方法はありますか?

4

1 に答える 1

1

jquery でセレクターをフィルター処理するには、いくつかの方法があります。 .find().not、または 、 などのセレクター自体のフィルターも使用でき:nth-childます:even。ただし、本当にクリエイティブになりたい場合は、jquery を使用して独自のフィルターを作成できます.filter()

これでかなりクリエイティブになれることがわかりました。次に、上記のコードを次のように変更します。

$dom_element.filter(yet_another_selector).on('click', some_selector_here, handler);

これにより、フィルターとハンドラーの両方で関数またはクロージャーを使用し、イベントのバブルに応じて必要に応じて変更できます。

ドキュメント.filter(): http://api.jquery.com/filter/

于 2013-02-15T08:56:43.230 に答える