我有一个显示(从asp.net代码输出html代码)房屋/属性的页面。 我已经构建了下面的JavaScript,其中按下按钮,更改属性上的所有css类,以便html不会更改,但css类不会,以获得2列视图。当从(document).ready调用JavaScript方法时不会完全执行。
这工作正常。但后来我发现,如果用户选择了2列视图,并导航到下一页(它是一种分页列表),那么视图会重置为原始(从1列开始)。
所以我做了以下工作。如果用户点击该按钮,并从1个columnview去,到2 columnview,我在window.name该值保存为1或2
后来,我在这里BUIL这个小脚本:
$(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,它不会变得更复杂,我想问问你们问题存在的地方?
我的猜测是在(document).ready()方法上工作,但是.getElementById()方法还没有工作,因为页面上没有任何东西(视觉上)。
在此先感谢。
为什么你结合jQuery与纯javascritp - 使用jQuery一路 – scibuff 2012-04-12 11:49:55
'$(document).ready(setView());';这会立即执行'setView'(parens使它成为一个调用)如果你想在DOM被加载时运行这个函数,你可以使用'$(document).ready(setView);' – 2012-04-12 11:52:12