私はRemodalモーダルウィンドウで処理するJavascriptのlibを使用しています。ポイントは、ライブラリにカスタムイベント用のハンドラがあることです。次のjavascriptJavaScriptのエクステンデッドライブラリからのイベントの優先処理
$(document).on('opening', '.remodal', function (e) {
console.log('opening');
});
は、別のDOM要素をクリックしてモーダルウィンドウを開いたときにトリガーされます。
<a data-remodal-target="modal-window-id" id="trigger">CLICK ME TO OPEN MODAL</a>
<div class="remodal data-remodal-id="modal-window-id>MODAL CONTENT</div>
さて、私はまた、javascriptをファイルにクリックイベント
$(document).on('click', '#trigger', function (e) {
console.log('trigger clicked');
});
への次の呼び出しを追加する場合にかかわらず、前のスクリプト(すなわち、他の前または後)の位置の、私は見ます以前はopening
イベントが発生しています。 Javascriptでは、いくつかの例外やjQuery(例えば、適切な順序でリスナーを付けるなど)を除いて、実際にはイベントの実行を保証するものではありません。
opening
より前にclick
を実行するにはどうすればよいですか?前に実行されますが、何らかの理由で、以前に実行されたアンカーに別のclick
リスナーが接続されている必要があります。
をクリックハンドラの後に実行ハンドラのコードの実行を強制するには、常にsetTimeout( "console.log( 'opening');"、100);を使用します。フィードバックのために – mjw
@mjwを遅らせてください。信頼できる解決策ではないようです。最初のクリックに100ms以上かかるとどうなりますか? –
console.log idkに100ミリ秒以上かかる場合) – mjw