【发布时间】:2010-02-05 11:53:42
【问题描述】:
我有以下 JavaScript 函数来显示/隐藏基于列表框选择的表格行。
function clock_Type(id) {
var clockSource = document.getElementById("clockSource");
var clockType = document.getElementById("clockType");
if(id == "1") {
if(navigator.appName == "Microsoft Internet Explorer") {
clockType.style.display = "inline";
clockSource.style.display = "inline";
} else {
clockType.style.display = "table-row";
clockSource.style.display = "table-row";
}
} else {
clockType.style.display = "none";
clockSource.style.display = "none";
}
}
下面是列表框。
<select id="clck" name="clock" class="selectStyle" style="width: 155px;" onchange="clock_Type(this.value)">
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</select>
这在列表框 onchange 事件上运行良好。即表格行被隐藏和显示。但是当我尝试从另一个函数调用JS函数clock_Type()时,如下所示,表格行没有显示出来。
function foo() {
clock_Type(1);
}
当我跟踪代码时,FireFox 的执行到达了以下部分
clockType.style.display = "table-row";
clockSource.style.display = "table-row";
但表格行没有显示。知道这里可能是什么问题。提前致谢!
【问题讨论】:
-
会不会是你在 DOM 完全加载之前调用了这个函数?此外,虽然这不是问题,但您应该使用字符串而不是整数 (
clock_Type("1");) 调用函数。 -
@Max — 似乎不太可能,它来自 onchange 事件。
-
@David:不清楚是否是这种情况:“...当我尝试从另一个函数调用 JS 函数clock_Type() 时...”。
-
@Max, David:感谢您调查此问题。我在函数调用中也尝试过字符串。但正如我提到的,执行到达 FF 中的以下代码行。 clockType.style.display = "table-row"; clockSource.style.display = "table-row";但是我在浏览器中看不到样式的变化。
标签: javascript html css