私は流星1.3を使用しています。流星のアプリケーションに「Webテンプレート」を統合する必要がありました。この「Webテンプレート」にはcustom.jsファイルがあります。 "web template"を統合した後、jsファイル内のこれらのイベントは一度だけ実行されます。これを修正する方法があります。このjsファイルには多くの行が含まれています。 ありがとうjqueryイベントの流星は一度だけ実行されます
0
A
答えて
1
イベントはテンプレート内のDOM要素に直接バインドされ、流星がDOM要素を変更するとバインディングが失われるという問題があります。
代理イベントは、jquery .on()を使用して行います。
あなたがしなければならないことは、固定されたDOM要素、つまりHTMLを変更する親のイベントを処理することです。この要素の内部でイベントが発生すると、イベントはそれを処理する固定されたDOM要素に「バブル」します。このイベントは、それを起動したDOM要素に関する情報を持ちます。したがって、onサブスクリプションは正しいハンドラを呼び出すことができます。
はなお$('#fixedElement').on(event, selector, handler)
指定:
- 「キャッチ」バブリングイベントが
- したいイベントが固定された要素の子孫要素をフィルタリング
- セレクタを処理するだろう固定要素
- ので
を実行するためのハンドラは、どのイベントを指定することができますどのハンドラでどの要素を扱うか。そして、流星がDOMを修正した後で、これはイベントを処理します。
あなたはこの持っている場合たとえば、:ありIDが '#btnOk' が
$('#container').on('click', '#btnOk', function() { alert('Clicked OK!`); });
ように、いつでもDOM要素:
$('#btnOk').click(function() { alert('Clicked OK!`); });
をあなたがこの中にそれを変更する必要があります'#cotnainer'の内部では、手作業の前に存在するオブジェクトやその場で作成されたオブジェクトにかかわらず、ハンドラは実行されます。
もちろん、#container
要素が存在し、他の要素に置き換えられていないことを確認する必要があります。これを行うには、たとえば、jQuery .parent()
を使用してDOMツリーを走査する必要があります。
関連する問題
- 1. SetIntervalメソッドはonlickイベントで一度だけ実行されます
- 2. 私のモバイルメニューJqueryスクリプトは一度だけ実行されます
- 3. JQuery私の関数は一度だけ実行されます
- 4. jQuery .click()は一度だけ実行されます
- 5. ワードプレスでスケジュールされたイベントは一度だけ実行されます
- 6. forループ内のonchangeイベントのトリガは一度だけ実行されます
- 7. 角$スコープ。$ブロードキャスト一度だけ実行されるイベント
- 8. forループのprint文は一度だけ実行されます
- 9. 私の定義ステートメントは一度だけ実行されます
- 10. forループ内のループは一度だけ実行されます
- 11. ページネーションのクリックイベントは一度だけ実行されます
- 12. ASP.NET "application/pdf":コードは一度だけ実行されます
- 13. Rubyデーモンスクリプトは一度だけ実行されます
- 14. JavaScript setIntervallは一度だけ実行されます
- 15. Python forループは一度だけ実行されます
- 16. アンドロイドスレッドは一度だけ実行されます
- 17. python for-loopは一度だけ実行されますか?
- 18. Python Forループはクエリーセットで一度だけ実行されます
- 19. Java Timer.scheduleは一度だけ実行されます
- 20. Gulpウォッチは一度だけ実行されます
- 21. VBAコードは一度だけ正常に実行されます
- 22. CanDeActivate()は同じルートで一度だけ実行されます
- 23. Python関数は一度だけ実行されます
- 24. startup.csは一度だけ実行されますか?
- 25. Java ScheduledExecutorServiceは一度だけ実行されます
- 26. スクリプトは一度だけ実行されます
- 27. Cスレッドは一度だけ実行されます
- 28. 背景スレッドwhileループは一度だけ実行されます
- 29. jQueryは一度だけ.appendを実行します
- 30. イベントのディスパッチャは一度だけ呼び出されますC#
ハンクス、私は試しましたが、動作しません。 $(myElementId).on( 'click'、function(){//何かする}}; – nemrrached
2番目のパラメータを指定する必要があります。更新された回答をご覧ください。 – JotaBe
Thnaks、その働き – nemrrached