首页 文章

if的jquery条件不是mouseenters [重复]

提问于
浏览 654
-1

这个问题在这里已有答案:

让我们举一个例子我有 4 divs div1,div2,div3,div4所有四个div都是彼此分开的,现在我想在jquery中写一个条件,

1) if mouseleaves div1' and 如果它没有进入div3或div4`,那么我想运行一个函数或警告什么...

目前iam通过检查 if mouseenters div3 or div4 来做到这一点 . 像这样的东西......

但我实际上想以相反的方式做...是否有可能实现这一目标?

$(".div11").mouseleave(function(){

if ( $(".div3,.div4").mouseenter)(function(){

 });

else{}

});

正如你所知,上面的代码不起作用,因为我搞砸了如果其他条件,但我试图写类似的东西......

4 回答

  • 0

    如果我正确理解您的问题,这将是正确的语法:

    $(".div1").mouseleave(function () {
    
    //Check if mouse is over div3 or div4
    if ($('.div3').is(':hover') || $('.div4').is(':hover')) {
      //Do something    
        } 
    else {
    
        }    
      });
    

    你同意吗?

  • 0

    可能吗?是 . 开箱即用?不,您可能需要自己实施 .

    为此,请考虑DOM EVent Model . 为了实现"not mouse enter",您必须编写一个在每次鼠标移动时触发的自定义事件 . 它将检查光标相对于目标元素边界的位置,看它是否是's 763698 the element'的边界(你是否包括margin?padding?),如果没有则调用传入的事件处理程序 .

  • 0

    输入另一个div时应该使用变量...

    例如:

    var div3enter = false;
    var div4enter = false;
    $('.div3').mouseenter(function(){ div3enter = true; });
    $('.div4').mouseenter(function(){ div4enter = true; });
    
    $(".div11").mouseleave(function(){
    
    if(div3enter and div4enter) {
    //do something....
    }
    

    });

  • 0

    您可以使用基于超时的解决方案

    jQuery(function($) {
        var timer;
        $(".div1").mouseleave(function() {
            timer = setTimeout(function() {
                alert('delayed');
            }, 100);
        });
    
        $(".div3,.div4").mouseenter(function() {
            clearTimeout(timer)
        });
    })
    

    演示:Fiddle

相关问题