<script?type="text/javascript">
function?bind(el,?eventType,?callback){
if(typeof?el.addEventListener?===?'function'){
//標準事件綁定方法
el.addEventListener(eventType,?callback,?false);
}else?if(typeof?el.attechEvent?===?'function'){
//IE事件綁定方法
el.attachEvent('on'?+?eventType,?callback);
}
}
??//鼠標懸停的處理函數
function?mouseoverHandler(e){
var?target?=?e.target?||?e.srcElement;
var?outer?=?document.getElementById('imageMenu');
var?list?=?outer.getElementsByTagName('li');
//清空所有LI元素的big
for(var?i?=?0;?i?<?list.length;?i++){
list[i].className?=?list[i].className.replace(/??big/g,?'');
}
//根據事件的冒泡原理,找到需要變更class?的LI元素
while(target.tagName?!=?'LI'?&&?target.tagName?!=?'BODY'){
target?=?target.parentNode;
}
//給當前元素加上class?big
target.className?+=?'?big';
}
function?initList(){
//取得外部元素
var?outer?=?document.getElementById('imageMenu');
//取得每個列表項
var?list?=?outer.getElementsByTagName('li');
for(var?i?=0;?i?<?list.length;?i++){
//對每個列表綁定鼠標懸停事件的監聽
bind(list[i],?'mouseover',?mouseoverHandler);
}
}
//執行初始化函數
initList();
</script>在body內部有效,但是改為外部js就沒用了,是什么情況??
內外部js代碼
NancyChen
2017-05-21 14:55:37