我一直在尝试使用此http://www.gloucesterwebdesign.com/showhidecontent/
但是我没有点击链接,而是想要一些JavaScript来调用这个函数
像
if(input == true){
toggleLayer('id');
}
else if(input == false){
toggleLayer('id2');
}
脚本调用toogleLayer函数,但没有任何反应,并且诅咒 输入值放在另一个脚本中,在页面加载时运行。我一直想知道这是不是问题。有谁对此发表评论?
- 更新 - 所以我要求更多的代码, http://pastebin.com/UD3tjz1s
我是一个javaScript noob,所以希望它不难阅读
答案 0 :(得分:0)
好的,我做了一个快速测试,这样就可以了。只需更换你当前的功能,它就更清洁,更简单。此外,每个当前浏览器都支持document.getElementById(id)并返回到IE6,因此除非您需要netscape支持,否则不会;需要你提供资源的所有额外代码。
function toggleLayer(id){
// get the element (this is supported in all modern browsers)
var element = document.getElementById(id);
// set the style display of this element to none if its set to be
// anything else than none, otherwise set it to block
element.style.display = element.style.display != "none"
? "none"
: "block";
}
我对此进行了测试,但确实有效。
好的,对不起,我有点误解,但我找到了解决问题的方法。下面是什么:因为你的javascript代码高于你的DIV元素,它会在页面创建DIV元素之前执行。因此,javascript将查找元素,并且它将返回undefined,因为它们尚未定义。因此,您必须将脚本移动到结束标记之前,或者将以下内容添加到代码中(请不要添加间隔以查看您的函数是否正常工作):
window.onload = function(){
setInterval(setSize,1000);
// the rest of your functions here - the above interval is so you can see it toggling
}
// function toggleLater(){...} here
您可能还想移动window.onload函数的ToggleLayer OUTSIDE,因为您无法从页面触发它(同样,该函数现在定义为INSIDE window.onload并且在DIV元素的范围之外。 ..)。