首页 文章

当Mouseenter尚未完成时,Mouseleave不会触发

提问于
浏览
3

我在使用jquery时遇到了mouseenter和mouseleave的问题 .

输入div时,将启动mouseenter功能 . 当我在完成mouseenter之前离开div时,mouseleave不会触发 .

我已经做了一个jsfiddle,让它更容易理解 .

http://jsfiddle.net/8sLLD/1/

码:

$("#menu1").mouseenter(function() {
   //code

})
    $("#image").mouseleave(function () {
    //code
});

因此,当进入按钮时,会出现一个图像 . 在图像出现之前离开按钮(在光标接触图像之前),鼠标离开不会触发 .

编辑:当使用#menu进行鼠标离开时,只需“移动”鼠标,图像就会非常奇怪 .

我知道已经有一些这样的问题,但它们都没有对我有用 .

非常感谢,对不起我的英语

1 回答

  • 2

    您可以使用hover事件处理程序来设置进出处理程序函数 .

    如果将悬停设置在 #p2 这样的包装元素上会更简单,因此当您进入/退出包装器而不是其子包时,它将被触发 .

    码:

    $('document').ready(function () {
         $("#p2").hover(function () {
             $(this).css("cursor", "pointer")
    
             $("#image").css("left", "75");
             $("#image").stop().animate({
                 width: "145px",
                 height: "145px",
                 left: "0"
             }, 'slow');
    
             $("#c").animate({
                 top: "100"
             }, 'slow');
    
         }, function () {
             $("#image").stop().animate({
                 width: "0%",
                 height: "0%",
                 left: "75"
             }, 'slow');
             $("#c").animate({
                 top: "0"
             }, 'slow');
         });
     });
    

    演示:http://jsfiddle.net/qwPvv/

相关问题