gpt4 book ai didi

javascript - Jquery 在没有事件触发的情况下部分工作

转载 作者:行者123 更新时间:2023-12-03 07:13:32 26 4
gpt4 key购买 nike

我有 html 文件,其中包含一些 js 文件和 jquery。

文件 1.js 中的脚本工作正常。文件 2.js 中的脚本也可以正常工作,但 Jquery 并不总是有效。所以我运行一些脚本,结果它应该隐藏“.popup”。一切正常 - 我向控制台运行一条消息,但 hide() 或 click() 等事件不起作用。

console.log("All done!");//works
console.log($(".popup"));//works fine – shows the right element in console

$(".popup").click();//doesn't work
$(".popup").hide();//doesn't work

我不想将所有脚本连接到一个文件中,并尝试理解为什么一个文件中的脚本总是没问题,而另一个文件中的脚本却不起作用。

有什么想法吗?

最佳答案

由于我们看不到您的大部分代码,我的答案只是一个很好的猜测:

原因是你的 javascript 在 DOM 渲染之前执行,因此尝试选择你的元素的 $(...) 目前无法找到它。

这就是为什么 jQuery 有一个 ready 函数,一旦你的 DOM 准备好就会执行它:https://api.jquery.com/ready/

$(document).ready(function() {
$(".popup").click();
$(".popup").hide();
}

它适用于您的 console.log 语句,因为您传递给它的值是在函数执行后评估的。 (其实我也不知道真正的原因,得自己研究)

编辑:Is Chrome's JavaScript console lazy about evaluating arrays?解释了 console.log() 行为的原因(仅限 chrome)

关于javascript - Jquery 在没有事件触发的情况下部分工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520763/

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