gpt4 book ai didi

javascript - 直到页面刷新,JQuery 才会运行

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:05 24 4
gpt4 key购买 nike

我有一个简单的脚本来隐藏和显示某些按钮,但 javascript 在页面重新加载之前不会运行。我怎样才能让它在用户单击该链接后立即运行?例如,让页面在用户第一次链接到页面时隐藏某些 div。

var array = [".section-1", ".section-2", ".section-3", ".section-4", ".section-5"];

var cnt = 0;

$(function() {
for(var i = 0; i < 5; i++) {
$(array[i]).hide();
}
$(array[cnt]).show();
$(".previous").hide();
$(".next").click(function () {
if(cnt < 4){
$(array[cnt]).hide();
cnt++;
$(array[cnt]).show();
}
if (cnt == 4) {
$(".next").hide();
}
if(cnt > 0) {
$(".previous").show();
}

});

$(".previous").click(function (){

if(cnt > 0) {
$(array[cnt]).hide();
cnt--;
$(array[cnt]).show();
}


if(cnt < 4){
$(".next").show();
}
if(cnt == 0){
$(".previous").hide();
}

});
});

这是 list 文件。

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require users

最佳答案

你的问题是 turbolinks

问题是 Turbolinks 会阻止您的 JS“正常”加载,因为它每次都通过 ajax 重新加载您的页面主体(破坏您的 JS,因为您的所有事件都不会被绑定(bind))

这两个解决方案是编写 JS 代码以使用 Turbolinks,或使用 jquery-turbolinks实现更自然的解决方案

如果你想让你当前的代码与 Turbolinks 一起工作,你可以使用这个:

var ready = function(){

var array = [".section-1", ".section-2", ".section-3", ".section-4", ".section-5"];
var cnt = 0;

for(var i = 0; i < 5; i++) {
$(array[i]).hide();
}
$(array[cnt]).show();
$(".previous").hide();
$(".next").click(function () {
if(cnt < 4){
$(array[cnt]).hide();
cnt++;
$(array[cnt]).show();
}
if (cnt == 4) {
$(".next").hide();
}
if(cnt > 0) {
$(".previous").show();
}

});

$(".previous").click(function (){

if(cnt > 0) {
$(array[cnt]).hide();
cnt--;
$(array[cnt]).show();
}


if(cnt < 4){
$(".next").show();
}
if(cnt == 0){
$(".previous").hide();
}

});
});

$(document).on("page:load ready", ready);

关于javascript - 直到页面刷新,JQuery 才会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23190140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com