Chr*_*yer 1 javascript jquery 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这有效.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++)
{....
Run Code Online (Sandbox Code Playgroud)
因此,当我更改页面时,它弹出"执行Show2Cols",但它并没有说"只是获得了所有节点".
因为这是我的第一个JS,它不会变得更复杂,我想问你们哪里存在问题?
我的猜测是on(document).ready()有效,但是.getElementById()方法还没有工作,因为页面上没有任何东西(直观地).
提前致谢.
问题是您对功能的引用
$(document).ready(setView());
Run Code Online (Sandbox Code Playgroud)
您正在执行该函数并将其值作为DOM ready事件处理程序返回,这是您需要的
$(document).ready(setView);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |