与えられたcssセレクタによってダイナミックに作成されたすべての要素にイベントリスナをバインドする必要があります。jQueryライブ関数のプロトタイプ
$(".foo").live("click", function(e) {
// bar
});
このためプロトタイプで任意の等価はありますでしょうjQueryので
、?
与えられたcssセレクタによってダイナミックに作成されたすべての要素にイベントリスナをバインドする必要があります。jQueryライブ関数のプロトタイプ
$(".foo").live("click", function(e) {
// bar
});
このためプロトタイプで任意の等価はありますでしょうjQueryので
、?
これは通常Event#findElement
で行われます。
document.observe('click', function(e, el) {
if (el = e.findElement('.foo')) {
// there's your `el`
// might want to stop event at this point - e.stop()
}
});
質問に対する正しい答えはここにある:
:プロトタイプでのjQuery.live()
の
http://gurde.com/2011/08/jquery-live-in-prototype/
同等のEvent.on()メソッドであります
var handler = document.on(
'click',
'div[id^="post-"] .attached-post-thumbnail',
function(event, element) {
console.log(this);
console.log(element);
}.bind(this)
);
handler.stop();
handler.start();
コールバック内でthisキーワードは、常に元の要素(この場合はドキュメント)を参照します。 。
質問する正しい場所はmetaです。恐らく削除されたのはちょうどa-linkの回答だったが、目に見える理由はなかった。 –
私の編集とhttp://stackoverflow.com/questions/how-to-answerを参照してください –
リンクされた例が間違っていると思います。 'document.on(...)'はありませんが、同じ方法で 'Event.on(document、...) 'を使わなければなりません。 – clockworkgeek
最も優れています。どうも!私が見つけたドキュメンテーションでは、CSSセレクタではなく、tagNameだけが許されていると述べました。しかし、Prototypeのソースを見ると、CSSセレクタが実際に許可されていることが確認されます。 – mynameistechno
まあ、これはjQueryと全く同じではありません。これは、ドキュメントのクリックにバインドし、イベントを見つけますが、私はDOM変更のjQueryトリガーを信じて、イベントを新しい要素にバインドします。 JQuery **は**のようなものでしたが、jQuery 1.4のように、ホバーのようなイベントをサポートしていますので、一度でもカバーの下でこれをやってはいけないと思いますした。 – cgp
@altCognito、これは、 'live'が導入されて以来、jQueryがライブバインドのフードとしてどのように機能するかはほとんどありません。 jQueryはネイティブに伝播しないイベントに対してハンドラーを 'document'にバインドできます.jQueryはそのようなイベントを手動で作成して伝播するためです。 – jangosteve