我如何确保我的JS ERB是Turbolinks 5友好的?

时间:2016-06-22 09:50:29

标签: javascript ruby-on-rails coffeescript turbolinks ruby-on-rails-5

我有一些简单的JS ERB文件,第一次完美运行。然而,问题在于,当多次按下JS的触发器时,它不会在客户端工作(即使它在服务器端工作) - 我怀疑它与Turbolinks 5有关。

我的JS.erb就是这样一个例子:

$("#a-<%= @answer.id %>-accept-answer i.accepted-answer-checkbox.fa.fa-check-square-o").addClass('fa-check-square voted');
$("#a-<%= @answer.id %>-accept-answer i.accepted-answer-checkbox.fa.fa-check-square-o").removeClass('fa-check-square-o');

Questions控制器&amp; /questions/accept_answer.js.erb

但是,现在,我的questions.coffee文件是空白的。

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

老实说,CoffeeScript有Ruby样式的插值,所以最简单的转换方法就是去做像

这样的事情。
s/DIV=\d+/DIV=25/g

但是你正在尝试,你可能会更好地通过切换这三个类,使它们处于相互对立的初始状态,如下所示:

$("#a-#{@answer.id}-accept-answer i.accepted-answer-checkbox.fa.fa-check-square-o").addClass 'fa-check-square voted'
$("#a-#{@answer.id}-accept-answer i.accepted-answer-checkbox.fa.fa-check-square-o").removeClass 'fa-check-square-o'

当然,我可能会把它变得太复杂,但这似乎解决了切换所需类的问题。