Javascript 点击时的咖啡脚本事件未触发?
我正在从事一个RubyonRails项目,在该项目中,单击视图中的Javascript 点击时的咖啡脚本事件未触发?,javascript,ruby-on-rails,coffeescript,Javascript,Ruby On Rails,Coffeescript,我正在从事一个RubyonRails项目,在该项目中,单击视图中的链接到元素应该会触发我的CoffeeScript中的一个方法,但输出永远不会打印出来 这是我的HTML的相关部分(链接有效): 我的控制台显示“[AC]on click handler called?”,但没有其他内容,即使在我单击链接后也是如此。 我在谷歌上搜索了很多次,有几篇帖子暗示问题可能出在TurboLink上。上面的代码已经反映了我尝试过的几种解决方案中的两种(在link中指定get方法,用$(document)封装事件
链接到元素应该会触发我的CoffeeScript中的一个方法,但输出永远不会打印出来
这是我的HTML的相关部分(链接有效):
我的控制台显示“[AC]on click handler called?”,但没有其他内容,即使在我单击链接后也是如此。
我在谷歌上搜索了很多次,有几篇帖子暗示问题可能出在TurboLink上。上面的代码已经反映了我尝试过的几种解决方案中的两种(在link中指定get方法,用$(document)封装事件处理程序)。在('turbolinks:load',->…)
)上,没有一种解决方案为我解决了这个问题。我是一名Rails初学者,对CoffeeScript一无所知,因此非常感谢您的帮助
编辑:
在事件处理程序中的('turbolinks:load',->…)
上添加id选择器并删除link\u to
元素和$(文档)中的get方法后,它终于起作用了D
HTML元素现在:
<%= link_to 'Start Quiz!', {:controller => :pages, :action => :start_quiz}, :class => 'btn btn-primary btn-lg', :id => 'start_quiz_button' %>
谢谢!:) 1)您需要将您的id更改为有效id(请阅读此内容),类似于start\u quizz\u按钮
2) 使用id选择器#
:
$(document).on('turbolinks:load', -> $('#start_quizz_button').on 'click', -> console.log "[AC] on click handler called!")
您希望'btn btn primary btn lg'
选择器匹配什么?我发布的链接元素的id不正确@mu?(1)id选择器使用
。(2) 'btn btn primary btn lg'
看起来像是一个类列表,而不是一个id。(3)有时阅读可能是一个好主意。是的,它曾经是我css的一个类,在我多次尝试修复问题时,我只是将其更改为id。我添加了一个#现在,谢谢:)谢谢,这很有意义!我已将其更改为您建议的内容,但是当我单击按钮时,“[AC]on click handler called!”仍然没有打印出来:(我非常感谢任何其他关于可能出现问题的提示。Nvm,我删除了上述两个turbolinks修复程序,现在它可以工作了-谢谢:)不客气。如果我的答案解决了你的问题,你能投票给我吗
<%= link_to 'Start Quiz!', {:controller => :pages, :action => :start_quiz}, :class => 'btn btn-primary btn-lg', :id => 'start_quiz_button' %>
App.quiz_data = App.cable.subscriptions.create "QuizDataChannel",
connected: ->
console.log "[AC] on click handler called?"
$('#start_quiz_button').on 'click', -> console.log "[AC] on click handler called!"
$(document).on('turbolinks:load', -> $('#start_quizz_button').on 'click', -> console.log "[AC] on click handler called!")