我有一个在$(document).ready(function() {});
上运行的javascript文件,它工作得很好,直到我导航到网站上的另一个页面,然后返回到原始页面。一旦我回来,jQuery就停止工作了。
我最初通过在特定页面的主体中包含一个<%= javascript_include_tag "xyz" %>
来修复此问题,但这会导致js文件加载两次,从而导致事件在发生时触发两次(通常相互抵消)。
有没有想过如何在不两次加载js文件的情况下修复这个bug?根据记录,我已经尝试了其他事件,如load
pageinit
等。
application.js
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require_tree .
//= require bootstrap-sprockets
//= require owl.carousel
//= require moment
//= require bootstrap-datetimepicker
//= require jquery-ui
//= require turbolinks
testing.js
$(document).ready(function() {
$(".glyphicon-remove").on("click", function(e) {
prevAngle = angle;
angle +=45;
$(this).animateRotate(angle, prevAngle, 1000);
e.preventDefault();
$('.instructions').find('h1').toggleClass('smallfont', 1000);
$(this).parent().toggleClass("btn-sm");
if ( $(".instructions").hasClass("isDown") ) {
$('.instructions').animate({
top: '30%',
width: '50%',
left: '25%'
}, 1000);
} else {
$('.instructions').animate({
top: '94%',
width: '100%',
left: '0',
}, 1000);
}
$(".instructions").toggleClass("isDown");
$('.instructions').toggleClass('instructions-small');
$('.instructions').toggleClass('instructions-min');
});
});
application.html.erb
<head>
<title><%= yield(:title) %> | Boston EDM Show Rewards</title>
<%= favicon_link_tag 'favicon.ico' %>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
发布于 2015-09-18 01:58:22
听起来像是Turbolinks的问题。要么删除Turbolink,要么添加jquery-turbolinks gem。不要忘记在application.js文件中添加jquery.turbolinks
。
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks
https://stackoverflow.com/questions/32636438
复制相似问题