私はthis oneに似た質問がありますが、しかし、一つの重要な違いがあります。受け入れられた回答で提供されるメソッドは、「直接」バインドされたイベントで正しく機能します。ハンドラにdelegate
メソッドが割り当てられている場合、結果は生成されません。たとえば:テスト()メソッド
some-class
を持つ要素の後
$("#some-element").delegate(".some-class", "click", function() {
alert("Click!");
});
が生成されたHTMLに挿入し、click
イベントハンドラがそれらにバインドされているかどうかをテストする方法はありますか?
EDIT:ハンドラは.some-class
にバインドされないので、先のとがっさんのコメント@ 1として、私は、上記の質問を訂正します:
要素ならば、たとえば、表現、チェックする方法はあります、jQueryオブジェクト(この例では$(".some-class")
とすることができます)をクリックすると、ハンドラがトリガされますか?
「クリック」イベントハンドラは、* *これらの要素にバインドされていません。それは "#some-element"に束縛されていて、それはDOMが変わるだけで変化しません。イベントはDOM( "バブル")を伝播し、 "#some-element"にバインドされたハンドラは、まずイベントターゲットに "some-class"クラスがあることを確認します。そうであれば、ハンドラが呼び出されます。 – Pointy
私は理解します。それを知っている - 私は質問で言及した振る舞いをシミュレートする方法はありますか?より具体的になるように修正します – Przemek
これを確認するための準備ができているjQueryのメカニズムはないと思います。 jQueryが ".delegate()"のイベント修飾子情報をどこに格納しているのかわかっていれば、あなたが書き込めると思います。ハンドラがどのように設定されているかを記録しておくほうが簡単なようです。 – Pointy