爲什麽這樣做會提示缺少對象啊?
JScript code
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(){
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
})()