javascript - 带有咖啡和 jquery 的 Rails 5
问题描述
我在使用 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');
});
});
谢谢。
解决方案
这是正在运行的最终咖啡脚本
$(document).on('turbolinks:load', ->
$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('fields').replace(regexp, time))
$(this).before($(this).data('fields').replace(regexp, time))
event.preventDefault())