输入另一个特定元素时停止jQuery Mouseleave事件

时间:2013-04-30 13:49:39

标签: javascript jquery

当我将鼠标滑动到另一个元素(链接)时,我需要知道如何阻止我的mouseleave事件发生。如果我没有输入特定元素,如何设置只执行mouseleave动画的条件?

$(activity_link).mouseenter(function() {
    $(this).siblings(".delete_place").animate({ 
                                               "left" : "-28px"
                                              }, 300);     
}).mouseleave(function() {
     $(this).siblings(".delete_place").animate({
                                                "left" : 0
                                               }, 300);
});

2 个答案:

答案 0 :(得分:4)

使用event relatedTarget:

$(activity_link).mouseenter(function () {
    $(this).siblings(".delete_place").animate({
        "left": "-28px"
    }, 300);
}).mouseleave(function (e) {
    if (e.relatedTarget != myElem) { //where myElem is a HTML element
        $(this).siblings(".delete_place").animate({
            "left": 0
        }, 300);
    }
});

答案 1 :(得分:0)

你可以停止事件并阻止它冒泡/射击:

...
}).mouseleave(function(event) {
    if(mycondition) {
        $(this).siblings(".delete_place").animate({"left" : 0}, 300);
    } else {
        event.preventDefault();
    }
    ...