[英]JavaScript method does not execute fully when called from (document).ready
我有一个页面显示(房屋背后的属性)(来自asp.net代码的html输出)。 我构建了以下javascript,只需按一下按钮,就可以更改属性上的所有css类,因此html不会更改,而css类却可以更改,从而获得2列视图。
这很好。 但是后来我想出了办法,如果用户选择2列视图,并导航到下一页(属于分页列表),则该视图将重置为原始视图(从1列开始)。
因此,我完成了以下操作。 如果用户单击该按钮,并从1列视图转到2列视图,我将该值在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 ready事件处理程序,这是您需要的
$(document).ready(setView);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.