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. このJavascriptイベントハンドラの引数はどこに定義されていますか?
- 5. Rails - controller.controller_nameビュー内 - コントローラオブジェクトはどこに定義されていますか?
- 6. EasyAutocompleteイベント - $(これ)は常に定義されていません
- 7. java.awt.Graphicsのメソッドはどこに定義されていますか?
- 8. GCCのトークンタイプはどこに定義されていますか?
- 9. カスタム例外。これは定義されていません
- 10. UNS_32はどこに定義されていますか?
- 11. フォントファミリはどこに定義されていますか?
- 12. Rubyでキーワードはどこに定義されていますか?
- 13. BCRYPT_HASH_FUNCTION_TABLEはどこに定義されていますか?
- 14. アクションメソッド "setElementClass"はどこに定義されていますか?
- 15. ffiシンボルはどこに定義されていますか?
- 16. ノードはどこに定義されていますか?
- 17. com.intellij.modules.langはどこに定義されていますか
- 18. DEBUGマクロはどこに定義されていますか?
- 19. #this.datasource#は通常どこに定義されていますか?
- 20. エイリアスはどこに定義されていますか
- 21. Roslyn.Compilers.CSharp.Syntax.Identifierはどこに定義されていますか?
- 22. Reads.atはどこに定義されていますか?
- 23. Enum.values()はどこに定義されていますか?
- 24. [Gradle] [Play] compilePlayBinaryScalaはどこに定義されていますか?
- 25. Widget.Material.Light.TextView.ListSeparatorはどこに定義されていますか?
- 26. tt_news - "newsMoreLink"レジスタはどこに定義されていますか?
- 27. Arduino:Serial.beginシンボルはどこに定義されていますか?
- 28. クラス "セクション"はどこに定義されていますか?
- 29. 「リンク」はどこに定義されていますか?
- 30. KeystoneJS:callHookフックはどこに定義されていますか?
ブライアン、メッセージの署名をやめてください。これは、スタックオーバーフローポリシー違反です。ありがとう! – sethvargo
おっと、ごめんなさい!するかどうか(またはこれ以上は行いません)。私に言ってくれてありがとう。 – Bryan