シナリオ: jQueryを使用すると、特定のイベントに対して複数のバインドが実行されます。イベントがトリガされると、指定された機能はPERトリガ後に起動する必要があります。jQueryトリガ機能を1回だけ実行する
チャレンジ: jQueryトリガの仕組みは、トリガが呼び出されたときに、関連する関数がそのイベントが持つバインドの数と同じ回数だけ発生するということです。各トリガーで、関数は1回だけ起動されます。どのようにこれを達成することができます。このシナリオでは、イベントがトリガーされるたびに関数を起動する必要があるため、「1」は機能しません。
ありがとうございます。
更新日: もっと具体的ではないことをお詫び申し上げます。
ページがロードされるときに、カスタムイベントが発生したときにページのさまざまな要素が登録されるため、参加する必要があります。
カスタムイベントがトリガされる/発生すると、登録されたすべての要素に対して何らかのタスクを実行する関数が呼び出されます。
例: 異なるパーシャルビュー(MVC)から埋め込まれた要素に注意してください。文書準備で
<html>
<a href="#" id="triggerelement">Trigger element</a>
<div id="element1" data-join="aevent">something 1</div>
<div id="element2" data-join="aevent">something 2</div>
<div id="element3" data-join="aevent">something 3</div>
<div id="element4" data-join="aevent">something 4</div>
</html>
- - イベントにバインドするために、「データ・参加」「aevent」を持つすべての要素。
- トリガー( "aevent")が呼び出されると、バインディング関数は "aevent"に参加しなければならないすべての要素を収集し、それらの上で何らかの操作を実行する必要があります。私はに実行しています
2つの問題:
何の要素に "バインド" へ - $バインド(?)。理由:複数の要素がこのカスタムイベントを発生させる可能性があり、イベントを発生させる要素はわかってはいけません。 1つの考えは - $(document).bind/$(document).triggerでした。これが最善のアプローチですか? $()はjQueryを使用して
。トリガがどのように私はそれだけでコールごとに一度ではなく、そのイベントにバインドされた各要素の関連する機能を呼び出すことを確認することができますと呼ばれています。
複数回バインドを停止しますか?または、 'var myTrigger = function(){}'を使用し、 'event + = myTrigger'を一度バインドしますか? (あるいは間違っていると思いますか?)また、 "複数の"バインディングを "フィルタリング"する "プロキシ"ハンドラをバインドすることもできます。 –
それはあなたのためのカスタムイベントですか? – voigtan