Rails 3 jquery-ujsコードを見ると、カスタムJavaScriptイベント(submit.rails、click.railsなど)にバインドされていることがわかりました。誰も、これらのカスタムの.railsイベントが定義されている場所を知っていますか?私は、Rails 3のUJSがどのように動作するのかをもっとよく理解しようとしているので、もっと効果的に使うことができます...Rails 3のカスタムJavaScriptイベントはどこに定義されていますか?
答えて
これらはnamespaced eventsです。それらの定義はありません。 click.rails
はclick
と同じですが、名前空間がrails
であるため、要素のclick
イベントをすべて呼び出すことなく、Rails固有のイベントハンドラをアンバインドまたはトリガーできます。 Railsが起動する場合があり、
$(".foo").click(function() { ... });
今:
たとえば、あなたには、いくつかの要素、<div class='foo' data-remote='true'>
を持っている、とrails.jsがあなたのコードで
$("*[data-remote='true']").bind("click.rails", function() { ... })
を結合し、あなたも持っていることを前提としていそのリモートハンドラはある時点で呼び出されますが、ちょうど$(this).click()
が呼び出された場合、カスタムハンドラを含むアイテムのすべてのクリックハンドラが呼び出され、望ましくない動作が発生する可能性があります。その代わりに、$(this).trigger('click.rails')
を呼び出すことができ、定義したクリックハンドラだけが実行されます。
パーフェクト...名前空間のイベントであることを明確に示すのに役立ちます。クリスおかげで! – Bryan
さて、待っていますが、どこで '* .rails'イベントがトリガーされましたか?私はjquery-ujsでそれらを見ることはできません... – Bryan
これらのイベントは、通常のイベントと.railsイベントによって起動されます。 .ililsハンドラだけで特別なことをしたいとき(ネームスペースが動作するようになったときに、レールハンドラのバインドを解除するか、通常のハンドラをトリガーせずにトリガするなど)。 http://docs.jquery.com/Namespaced_Eventsを参照してください。 –
- 1. Rails 3でyieldはどこに定義されていますか?
- 2. Rails: "params"はどこに定義されていますか?
- 3. I18n.localizeはどこでレールに定義されていますか?
- 4. カスタム例外。これは定義されていません
- 5. java.awt.Graphicsのメソッドはどこに定義されていますか?
- 6. Enum.values()はどこに定義されていますか?
- 7. Rubyでキーワードはどこに定義されていますか?
- 8. ノードはどこに定義されていますか?
- 9. com.intellij.modules.langはどこに定義されていますか
- 10. DEBUGマクロはどこに定義されていますか?
- 11. UNS_32はどこに定義されていますか?
- 12. #this.datasource#は通常どこに定義されていますか?
- 13. エイリアスはどこに定義されていますか
- 14. BCRYPT_HASH_FUNCTION_TABLEはどこに定義されていますか?
- 15. Poco ByteOrder :: ToNetwork()はどこに定義されていますか?
- 16. アクションメソッド "setElementClass"はどこに定義されていますか?
- 17. tt_news - "newsMoreLink"レジスタはどこに定義されていますか?
- 18. kill_proc_infoはどこで定義されていますか?
- 19. セッションタイムアウトはどこで定義されていますか?
- 20. php関数はどこで定義されていますか?
- 21. ここでスタイルはどこに定義されていますか?
- 22. この変数はどこに定義されていますか?
- 23. いつ、どこで_DEBUGが定義されていますか?
- 24. これはどのように定義されていますか?
- 25. このjavascript関数は定義されていませんか?どうすれば修正できますか?
- 26. Rails 3ビューヘルパーは未定義ですか?
- 27. zvalのようなものはどこに定義されていますか?
- 28. time_tはどのように定義されていますか?
- 29. このPropertyChangedイベントはどこで設定されますか?
- 30. Angular2のhttp.get()関数はどこに定義されていますか?
ブライアン、メッセージの署名をやめてください。これは、スタックオーバーフローポリシー違反です。ありがとう! – sethvargo
おっと、ごめんなさい!するかどうか(またはこれ以上は行いません)。私に言ってくれてありがとう。 – Bryan