Javascriptのイベントリスナーを強制的に強制的に実行することが可能かどうかは疑問ですが、条件がtrueの場合は一度実行してから、引き続き条件を満たしてさらに実行する必要がありますか?JavaScriptを強制的に実行するEventListenerを強制しますか?
答えて
あなただけのページのロードの例を追加するために編集した
上の関数を呼び出し、関数内のコードをラップ場合:
は、あなたのイベントがあるが、ここでは例何知らない:
<a ..onclick='someFunction()'>click</a>
<script type='text/javascript'>
function someFunction() {
// do whatever
}
// call the function
someFunction();
</script>
特定のコンテキストに関数が必要な場合は、jQueryのproxy()メソッドを使用できます。http://api.jquery.com/jQuery.proxy/ – KOGI
あなたの質問が正しく理解されている場合は、一度に1つのイベントしか処理したくない場合(イベントが連続して複数回発生する場合は、そのうちの1つを処理したい場合のみ)、ハンドラが完了したら、より多くのイベント。正しい?
jQueryのは、それは一度だけのイベントを処理しますが、ハンドラ内で使用すると、再バインドイベント場合はあなたが望むように、それが機能する.one()メソッドのapi.jquery.com/one
を持っています。
function handler()
{
// do stuff
$(this).one('click', handler);
}
$('.someElement').one('click', handler);
var clickFunction = function (event) {
//do some stuff here
window.removeEventListener('click',clickFunction, false);
};
window.addEventListener("click", clickFunction, false);
これはクロージャの魔法がにremoveEventListenerがclickFunctionを見つけてみましょうとして、あなたは一度clickFunctionを発射できるようになります。
単純なことをするためにライブラリを使用する必要はありません。
このパターンを使用する必要がある場合は、すぐに問題になります。 1つのコードで2回これはCSSアニメーションコンテキストで非常に一般的です。アニメーション「フック遷移、変更の設定、移行の終了を自分自身で削除」があり、しばしばそれをチェーンする必要があります。 http://hastebin.com/ikixonajuk.coffeeに似たパターンははるかに保守的です。 NodeJSでは、これは単に「一度」と呼ばれます。 – Dmitry
1. 2011年に回答が最初に掲載されたとき、かつては利用できなかった。 2.それは元の質問のクライアント側の実装の問題ですので、nodejsは役に立ちません。 3.あなたのコーヒースクリプトは、基本的に少し修正して同じ考えです。 – Jlam
はブラウザを介して今すぐ利用可能ですか、それともそれを発明しなければならないのですか?肥大化したサードパーティライブラリを使用する必要がありますか? – Dmitry
- 1. QDockWidgetを強制的に実行する
- 2. スレッドコンテキストスイッチを強制的に実行する
- 3. 安全プレイブックの実行を強制的に強制終了できますか?
- 4. ロギングコアを強制的にシャットダウンに強制しますか?
- 5. QTP Web Extensibilty - QTPにテスト実行を強制的に強制する方法
- 6. 実行中のプロセスを強制的に強制終了するには?
- 7. 強制的にDataGridViewを強制的に列と行を生成する
- 8. 強制的に専用グラフィックスカードを使用するマシンを強制しますか?
- 9. 強制的にSQLite 3.7をレガシーモードで実行しますか?
- 10. アクションリスナーを強制的に実行しますか?
- 11. コールバックを強制的に処理するよう強制しますか?
- 12. np.random.choiceは強制的に強制されますか?
- 13. 強制的にgitでファイルにプルを強制するには?
- 14. スパークスケジューラ実行するアプリケーションを強制的に実行
- 15. シングルスレッド実行を強制するには?
- 16. javascript - D3強制的に一部のノードを強制的に折り畳む
- 17. HTMLリンクを強制的に強制する方法は?
- 18. 強制的にOpenGLコアプロファイルを強制する
- 19. jbossポータルサーバで強制的にユーザセッション(ログアウト)を強制終了する
- 20. リレーでフェッチを強制的に強制する方法
- 21. アスペクト比を強制的に強制する方法 - css
- 22. ブロッキングメソッドの実行中に強制的に制御を戻します。
- 23. Gradle:強制的にカスタムタスクを常に実行する(キャッシュなし)
- 24. 強制的な値の強制伝播
- 25. プログラムで強制的にiOS 7アプリを強制停止しますか?
- 26. 強制リンク - JavaScriptを
- 27. window.open強制的に新しいJavaScriptスレッド
- 28. クロージャを使用して同期javascriptを強制的に実行する
- 29. GMが強制的にspacer.gifを含むTDを強制的に16pxにする
- 30. javascriptページを強制的にクリック
「条件が成立していない」...条件は何ですか?また、それが一度発火したら、引き続き耳を傾け、おそらく再び発砲して、一度発射しないでください。一度に1つのイベント(複数の同時イベントではありません)だけを処理したいと思っている場合を除きますか? – KOGI
あなたはjavascriptフレームワークを使用していますか? ExtJSでは可能だと思います。おそらくあまりにもjQueryで。 – Marc
jQueryには.one()メソッドがありますが、それがあなたが探しているものであるかどうかはわかりません。ただし、ハンドラでイベントを再バインドするだけで済みます。これは、同時のイベントを処理しないという効果を持ち、ハンドラが完了した後、イベントのリスンを再び開始します。 http://api.jquery.com/one/ – KOGI