$("#cdu li").mouseover(togglemenu);
function togglemenu(){
$("#cdu").css("borderRadius","5px 0 0 5px");
$("#tc").css("display","block").animate({width:"546px"},200);
var index=$("#cdu li").index(this);
index=parseInt(index)+1;
$("div.l"+index).css("display","block").siblings().css("display","none");
** document.getElementById("cdu").onmouseout=function(){
$("#tc").css("display","none");
console.log("zz");
};
document.getElementById('cdu').onmouseover=function(){
$("#tc").css("display","block");
console.log("koko");**
}
}
本来id为"cdu"的元素在li元素发生mouseover后才会有事件,但是在代码执行一次之后,不用mouseover,cdu能执行事件,这是怎么回事?
事件绑定一次之后就会一直存在,在不需要绑定的时候,可以调用unbind("moveout")这样的函数来取消绑定
你说的是这个document.getElementById('cdu').onmouseover怎么会触发是吧?over时候绑定的就马上触发了
因为事件会冒泡,冒泡是另外的事件处理的,有时间差,你阻止冒泡就不会马上执行了
function togglemenu(e) {
e.stopPropagation();
document.getElementById("cdu").onmouseout = function () {
// $("#tc").css("display", "none");
console.log("out");
};
document.getElementById('cdu').onmouseover = function () {
// $("#tc").css("display", "block");
console.log("over");
}
}
事件绑定一次之后就会一直存在的,如果不需要,就要调用代码来取消绑定
绑定了就生效了,一直到取消事件
你能用F12调试看看有木有什么错误