5

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

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

2 回答 2

4

事件相关目标的使用:

$(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);
    }
});
于 2013-04-30T14:17:58.503 回答
-1

您可以停止该事件并防止它冒泡/触发:

...
}).mouseleave(function(event) {
    if(mycondition) {
        $(this).siblings(".delete_place").animate({"left" : 0}, 300);
    } else {
        event.preventDefault();
    }
    ...
于 2013-04-30T14:03:47.263 回答