gpt4 book ai didi

从 (document).ready 调用时,JavaScript 方法未完全执行

转载 作者:行者123 更新时间:2023-11-30 08:59:54 25 4
gpt4 key购买 nike

我有一个页面显示(来自后面的 asp.net 代码的 html 输出)房屋/属性。我构建了以下 javascript,按下按钮后,它会更改属性上的所有 css 类,因此 html 不会更改,但 css 类会更改,以获得 2 列 View 。

这很好用。但后来我想,如果用户选择 2 列 View ,并导航到下一页(它是一种分页列表), View 将重置回原始 View (开始 1 列)。

所以我做了以下事情。如果用户单击该按钮,并从 1 个列 View 转到 2 个列 View ,我将该值保存在 window.name 中为 1 或 2。

然后我在这里构建这个小脚本:

 $(document).ready(setView());

function setView() {
if (window.name != null) {
if (window.name == 2) {
window.Show2Cols();
}
if (window.name == 1) {
window.Show1Col();
}

}
}

这行得通。 Show2Cols() 方法开始如下:

 function Show2Cols() {

alert("Show2Cols is executed");
var nodes = document.getElementById("panden").getElementsByTagName("div");
alert("Just got all nodes.");
for (i = 0; i < nodes.length; i++)
{....

因此,当我更改页面时,会弹出“Show2Cols 已执行”,但不会显示“刚刚获得所有节点”。

因为这是我的第一个JS,而且不会变得更复杂,所以我想问问大家问题在哪里?

我的猜测是 on (document).ready() 有效,但是 .getElementById() 方法还不起作用,因为页面上还没有任何内容(视觉上)。

提前致谢。

最佳答案

问题是你引用了你的函数

$(document).ready(setView());

您正在执行函数并返回其值作为 DOM 就绪事件处理程序,这就是您需要的

$(document).ready(setView);

关于从 (document).ready 调用时,JavaScript 方法未完全执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122934/

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