gpt4 book ai didi

javascript - 包含 JS,但不会在加载时触发?

转载 作者:行者123 更新时间:2023-11-28 06:23:00 25 4
gpt4 key购买 nike

我有一个 js 脚本,可以在滚动时修复我的侧边菜单。它显示它包含在 view source 中,如果我将我的代码复制/粘贴到控制台以自动触发它,它会完美运行。

我怎样才能弄清楚为什么它不会在加载时触发?也不会抛出任何错误。有问题的文件有两个功能,第一个是将菜单固定到顶部,第二个是通过选中复选框来更改内容。

这是我的脚本:

    // FIX SIDE BAR AFTER SCROLL
$(window).load(function() {
console.log('test');
$("a[href*=#]:not([href=#])").click(function() {
if (location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname) {
var o = $(this.hash);
if (o = o.length ? o : $("[name=" + this.hash.slice(1) + "]"), o.length) return $("html,body").animate({
scrollTop: o.offset().top
}, 900), !1
}
});
console.log('test2');
$(window).load(function() {
var o = $(".sticky").offset().top,
t = function() {
var t = $(window).scrollTop();
t > o ? $(".sticky").addClass("stuck") : $(".sticky").removeClass("stuck")
};
t(), $(window).scroll(function() {
t()
});
console.log('test3');
});

//RADIO BUTTON CONTENT CHANGER
$(function(){
$('input[name="pricing-radios"]').on('change', function(){
if ($(this).val()=='pricing1') {

//change to "show update"
$(".pricing-engage-chng").text("179");
$(".pricing-engage-chng-additional").text(".01");
$(".pricing-crm-chng").text("214");
$(".pricing-crm-chng-additional").text(".01");
$(".upgrade-price").text(".0025");


} else if ($(this).val()=='pricing2') {
$(".pricing-engage-chng").text("699");
$(".pricing-engage-chng-additional").text(".005");
$(".pricing-crm-chng").text("714");
$(".pricing-crm-chng-additional").text(".006");
$(".upgrade-price").text(".0015");

} else if ($(this).val()=='pricing3') {
$(".pricing-engage-chng").text("3,499");
$(".pricing-engage-chng-additional").text(".0025");
$(".pricing-crm-chng").text("3,514");
$(".pricing-crm-chng-additional").text(".00325");
$(".upgrade-price").text(".00075");
}

});

});

});

我的代码似乎在我的 JSFiddle 中有效 正如我所说,将我的代码复制并粘贴到我的控制台中将触发我的命令并产生所需的结果。

可以看到直播页面 here 也是。

感谢您的帮助!

最佳答案

好吧,我想通了:

我们使用的框架中有一个自动缩小功能。因此,当我提取旧代码时,这部分技术上被缩小了。所以我的 vars 返回了未知元素。

$(window).load(function() {
var o = $(".sticky").offset().top,
t = function() {
var t = $(window).scrollTop();
t > o ? $(".sticky").addClass("stuck") : $(".sticky").removeClass("stuck")
};
t(), $(window).scroll(function() {
t()
});

我最终重写了一个函数来添加这个类,并进一步简化了它,并得出了这个结论:

$(window).scroll(function() {    
var scroll = $(window).scrollTop();

//if less than or = to 350 add class
if (scroll >= 350) {
$(".sticky").addClass("stuck");
// else remove class
} else {
$(".sticky").removeClass("stuck");
}
});

现在这个被缩小了,但是一切都是预定义的并且是可读的。

关于javascript - 包含 JS,但不会在加载时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35458827/

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