我的shows.js.coffee
中有一个coffeescript文件assets/javascripts folder
。它包含用于在页面上切换两个div的复选框的代码。
如果我点击链接将我带到页面,jQuery永远不会被调用。两个div显示已加载,单击该复选框不会执行任何操作。
如果我在页面上,如果我点击重新加载,或者我只是在我的浏览器中转到localhost:3000/shows/new
,则加载jQuery并隐藏div并选中复选框。
如果我关闭turbolinks问题就会消失。有没有什么我需要采取不同的方式进行turbolinks并仍然使我的jQuery工作?
这是我的shows.js.coffee
$('.shows.new').ready( ->
$(document).ready( ->
if(not $('#show_dinner_served').is(':checked'))
console.log 'Checked'
$('.dinner_starts').hide()
$('.dinner_ends').hide()
)
$(document).ready( ->
$('#show_dinner_served').click( ->
$('.dinner_starts').toggle()
$('.dinner_ends').toggle()
)
)
)
我的application.js
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require_tree .
答案 0 :(得分:0)
事实上,turbolinks打破了一些事件。详细描述了他们github page (Events)和一个众所周知的问题。尝试使用jquery-turbolinks
gem。你可以找到它here
希望这有帮助。
答案 1 :(得分:0)
启用后,TurboLinked页面将无法完全加载,因此jqyery的document.ready()
将无法正常工作。相反,turbolink提供了一个触发器,您可以使用它来代替文档就绪。
示例 -
$(document).on('ready page:load', function() {
// CODE
});