开发者社区 问答 正文

javascript事件添加问题

$("#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能执行事件,这是怎么回事?

展开
收起
小旋风柴进 2016-03-17 12:40:21 2074 分享 版权
1 条回答
写回答
取消 提交回答
  • 你说的是这个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");
           }
    
       }
    2019-07-17 19:05:08
    赞同 展开评论
问答分类:
问答标签:
问答地址: