【发布时间】:2018-10-28 21:36:00
【问题描述】:
我在使用 rails 中的咖啡脚本时遇到了一些问题,尤其是在原则和理解方面,然后仅使用我的脚本。
我有这样的咖啡脚本:
->
$('form').on 'click', '.add_fields', (event) ->
alert('my test message')
编译成
(function() {
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.
// You can use CoffeeScript in this file: http://coffeescript.org/
$(function() {
return $('form').on('click', '.add_fields', function(event) {
return alert('my test message');
});
});
}).call(this);
我遇到的问题是事件永远不会触发,当我手动将这部分编译代码放入控制台时,事件会触发,但我无法拥有最外层的功能。我是用错了还是有人可以向我解释一下 call(this) 是如何工作的,以便我可以在咖啡脚本中放置正确的结构?
$(function() {
return $('form').on('click', '.add_fields', function(event) {
return alert('my test message');
});
});
谢谢。
【问题讨论】:
-
你启用了turbolinks吗?如果是这样,请将
$('form')绑定包装在turbolinks:load事件侦听器中。 -
你是正确的,它已修复。仍然想知道 turbolinks 总体上是如何影响这一点的。但活动现在有效。下面回答
-
检查 Turbolinks 文档,特别是关于该事件侦听器的部分,特别是 github.com/turbolinks/turbolinks#installing-javascript-behavior。 Turbolinks 在后台做一些事情,使您的网站触发不同的事件以提供其功能,您可以调整您的工作流程以使用 turbolinks,或者如果您不希望它禁用它。在更改代码之前阅读 de README 以确定您是否真的需要它。
标签: javascript ruby-on-rails coffeescript