function menuShow() {
            $(".pngShow").mouseleave(function (event) {
                varthis = $(this);
                $(".menuHover").mouseenter(function (event) {
                    event.stopPropagation();
                    return;
                });
                varthis.slideUp();
                event.stopPropagation();
            });        }
就是ie不行啊,谷歌可以的

解决方案 »

  1.   

    表示看不明白,你是想说,不执行menuShow这个函数,但是函数内部绑定的两个事件在被触发的时候有效果?
      

  2.   

    先执行   $(".menuHover").mouseenter(function (event) {                    event.stopPropagation();                    return;                });
      

  3.   

    ie底下先执行  varthis.slideUp();                event.stopPropagation();这个,不是我想要的结果
      

  4.   

    这个,试了试,好像是因为边界问题,他们的边界不是完全重合的,所以是在触发第一个mouseleave事件时,不会在同一时刻触发mouseenter事件,你可以为每个元素加个带颜色的border就可以看出来了
      

  5.   

    当鼠标移到menuHover这个时,我要发生这个事件,但他先执行了varthis.slideUp();                event.stopPropagation();我要先执行上边的函数
      

  6.   

    这两个选择器选择的目标(pngShow,menuHover)肯定是并列的吧?肯定不是包含的,那如果是并列的,这两个元素之间就不会是完全重合的啊,那么执行的顺序就是,先离开,后进入,这样的话,就是对着呢。离开和进入之间肯定会有一个动作,虽然时间很短,可是浏览器会知道的。
      

  7.   

    逻辑混乱
    $(".menuHover").mouseenter(function (event) {                     event.stopPropagation();                     
    return;                 
    }); 
    这句当然会在
    varthis.slideUp();                
    event.stopPropagation(); 
    两句前执行,但
    event.stopPropagation();                     
    return; 
    这两句是另一个函数的代码了,当然得在mouseenter事件触发后才执行的
    理所当然的事情,不晓得你的困惑在什么地方
      

  8.   

    但是触发了,就是先执行varthis.slideUp();                
     event.stopPropagation(); 这两句
      

  9.   

    $(".menuHover").mouseenter(function (event) { 
    alert(1);//你是说这个触发了还是会先执行下面的?你加上这句自己再看看吧
                        event.stopPropagation(); 
                        return; 
                    });