<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就没用了,是什么情况??
添加回答
举报
0/150
提交
取消