带有rails的coffeescript(切换功能)仅在页面重新加载后才起作用

时间:2013-04-24 03:33:30

标签: jquery ruby-on-rails ruby coffeescript toggle

jQuery ->
  $("#toggle_button").click ->
    $("#toggle_answer").toggle()

我必须每次刷新一次页面才能让切换按预期工作。如果我不刷新页面它不起作用?

有解决方案吗?我一直试图让它工作大约3小时。我尝试了很多其他的东西,比如:

$(document).ready() ->
  $("#toggle_button").click ->
    $("#toggle_answer").toggle()

jQuery ($) ->
  $("#toggle_button").click ->
    $("#toggle_answer").toggle()

我也尝试过不使用咖啡脚本而只是使用javascript,但我仍然遇到同样的问题。

这是导轨如何工作的问题吗?也许点击链接到另一个页面后没有加载javascript? (我不认为这种情况正在发生,但我不明白为什么它不起作用)

任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

当触发或附加事件时,DOM中缺少 #toggle_button #toggle_answer 的问题。您可以尝试使用jQuery方法.on(),它将查找给定选择器的元素,并在添加到DOM时将事件附加到它们:

$("#toggle_button").on "click" ->
    $("#toggle_answer").toggle()

.on()替换jQuery中的.live().delegate()函数,您应该阅读其文档:http://api.jquery.com/on/