2013-04-30 32 views
5

Tôi cần biết cách tôi có thể dừng sự kiện mouseleave của mình khi xảy ra khi tôi trượt chuột qua một phần tử khác (liên kết). Làm thế nào tôi có thể thiết lập một điều kiện mà nói để chỉ làm phim hoạt hình mouseleave nếu tôi đã không nhập vào một yếu tố cụ thể?Dừng sự kiện jQuery Mouseleave khi nhập một yếu tố cụ thể khác

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

Nó sẽ rất hữu ích để bao gồm html của bạn và các chi tiết cụ thể của yếu tố này. Thường thì cách tiếp cận này là làm cho yếu tố này trở thành một đứa trẻ của yếu tố chính và định vị nó hoàn toàn. Nhưng điều này rất phụ thuộc vào các chi tiết cụ thể. –

+0

Bạn có thể nên thêm một chút nữa vào câu hỏi của mình, vì có thể có cách tốt hơn để giải quyết vấn đề tổng thể của bạn hơn là với '.mouseenter' và' .mouseleave'. – CaptainBli

Trả lời

0

bạn có thể dừng sự kiện và ngăn chặn nó từ bọt/bắn:

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

Tôi nghĩ câu hỏi là viết cái gì là "điều kiện"? –

4

Sử dụng sự kiện 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); 
    } 
}); 
+0

relatedTarget thực sự tuyệt vời! Cảm ơn :) – ravbetsky

+0

Trong trường hợp này, sự kiện 'mouseleave' sẽ không được thực hiện lại khi bạn rời khỏi' myElem'. Tôi nghĩ rằng nó nên được thực hiện khi con chuột của bạn lá hoặc 'activity_link' hoặc' myElem'. Bạn có giải pháp nào không? Vì tôi đã chính xác [cùng một câu hỏi] (https://stackoverflow.com/questions/45126197/how-can-i-select-everything-except-specific-element). – stack

Các vấn đề liên quan