私はajax経由でロードされたリンクにイベントを追加しています。ここでは、HTMLの簡単な例です:EventDelegation(:relay)を使用すると、mootoolsはイベントのバブリングを停止します
<div class="ajax-content">
<div class="parent">
<a href="#" class="event-link">Click here</a>
</div>
</div>
「アヤックス・コンテンツ」内のすべてのコンテンツは、AJAXを介してロードされます。私は ".event-link"のクリックイベントを ".parent"にバブルアップさせたくありません。それは、AJAXを介してロードされていなかった場合、私はこれを行うことができます:
$$('.event-link').addEvent('click', function(event){
event.stopPropagation();
event.preventDefault();
//do stuff
});
しかし、私は同じ動作を実現する方法を見つけ出すことはできません(クリック:リレー)。これは私が試しているものです:
$$('.ajax-content').addEvent('click:relay(.event-link)', function(event){
event.stopPropagation();
event.preventDefault();
//do stuff
});
クリックイベントが「.parent」で発生しないようにするにはどうすればよいですか? (私も他の構文を試してみました - event.stop()およびfalseを返すが、彼らは同じ結果が得られた。)
徹底的な返信をありがとう! .live()を使用してこれを行うことができるjQueryからこれを移植する際にこの問題が発生しました。あなたが概説したように根本的な違いがあることを恐れました。 –
はい、この基本的な違いは先週IRCに寄せられました。奇妙なことに、mootoolsオフィスの時間(mreenools.net)でmootoolsのすべての開発者が質問に答えて助けてくれます。異なる動作を示すmootools verとjquery verを使ったテストケース。私はそれがうまくいくとは思えませんが、おそらくできる巧妙なフレームワークのpplがあります:) –
@DimitarChristoffをクリアしていただきありがとうございます –