【发布时间】:2016-10-07 21:36:51
【问题描述】:
我已经看到这个问题在这里发布了几次,但没有一个解决方案对我有用,包括 Rails 指南中的解决方案。下面我的代码有什么问题吗?本质上,当页面最初加载时,JQuery 工作,但是当您重新加载页面时,一切都停止工作。我是 Rails 菜鸟,非常感谢您的帮助和耐心。
app/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= bootstrap.min.js
//= require_tree .
$(document).on('ready turbolinks:load', function(){
$(".full-width").fadeIn(2500);
$(".index-thumbnails").hover(function(){
$(this).animate({opacity: 0.60},"fast")
},
function(){
$(this).animate({opacity: 1},"fast")
});
setTimeout(function(){
$("#subscribeModal").modal("show");
},
5000
);
$(".close").on("click", function(){
$("#subscribeModal").modal("hide");
});
$(".social").mouseover(
function(){
$(this).animate({height: 116, width: 116},"fast");
}
);
$(".social").mouseout(
function(){
$(this).animate({height: 96, width: 96},"fast");
}
);
});
【问题讨论】:
-
尝试
$(document).on('turbolinks:load', function() { ... });从您的通话中删除ready -
我也试过了。没有运气。还有其他想法吗?
-
阅读Turbolinks 文档——尤其是关于幂等事件处理程序的部分。您应该使用带有jQuery.on
$(document).on(click, 'selector' ...的委托事件处理程序,而不是将处理程序直接附加到元素。此外,如果这是一个 Rails 4 应用程序,您实际上可能正在使用现在称为 turbolinks-classic 的东西。 turbolinks-classic中对应的事件是page:change -
同时检查控制台是否有错误。听起来很明显,但你会感到惊讶......
标签: javascript jquery ruby-on-rails turbolinks turbolinks-5