爲什麽這樣做會提示缺少對象啊该怎么处理
爲什麽這樣做會提示缺少對象啊?JScript codevar $function(ID){return document.getElementById(ID)}(fu
爲什麽這樣做會提示缺少對象啊?
JScript codevar $=function(ID){return document.getElementById(ID);}(function(){ var obj=$("menu"); var mli=obj.getElementsByTagName("li"); for(var i=0;i<mli.length;i++){ if(mli[i].getElementsByTagName("ul")[0]){ mli[i].onmouseover=function(){ this.getElementsByTagName("ul")[0].style.display="block"; } mli[i].onmouseout=function(){ this.getElementsByTagName("ul")[0].style.display="none"; } } }})()
不用匿名函數就可以正常執行
[解决办法]因为你的$函数写错了
var $=function(ID)({return document.getElementById(ID);});
(function(){
var obj=$("menu");
var mli=obj.getElementsByTagName("li");
for(var i=0;i<mli.length;i++){
if(mli[i].getElementsByTagName("ul")[0]){
mli[i].onmouseover=function(){
this.getElementsByTagName("ul")[0].style.display="block";
}
mli[i].onmouseout=function(){
this.getElementsByTagName("ul")[0].style.display="none";
}
}
}
})()
[解决办法]或者:
var $=function(ID){return document.getElementById(ID);};
[解决办法][解决办法]})() 最后}好像多了。。。
[解决办法]一般在匿名函数前面加个分号,以避免上行结尾没打分号而引起错误
;(function(){
//code
})()