2013-04-30 17 views
5

Ho bisogno di sapere come posso interrompere il verificarsi dell'evento di mouseleave quando faccio scorrere il mouse su un elemento diverso (collegamento). Come posso impostare una condizione che dice di fare solo l'animazione del mouseleave se non ho inserito un elemento specifico?Interrompi evento jQuery Mouseleave quando si immette un altro elemento specifico

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

Sarebbe utile includere il codice HTML e le specifiche di questo elemento Spesso l'approccio è quello di rendere questo elemento figlio dell'elemento principale e posizionarlo assolutamente. Ma questo dipende molto dalle specifiche. –

+0

Probabilmente dovresti aggiungere un po 'di più alla tua domanda, in quanto potrebbe esserci un modo migliore per risolvere il tuo problema generale che con un '.mouseenter' e' .mouseleave'. – CaptainBli

risposta

0

si può fermare l'evento e impedire che ribolle/cottura:

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

Penso che la domanda sia: cosa scrivere come "mycondition"? –

4

Uso della manifestazione 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 è davvero fantastico! Grazie :) – ravbetsky

+0

In questo caso, l'evento 'mouseleave' non verrà eseguito di nuovo quando lasci' myElem'. Penso che dovrebbe essere eseguito quando il tuo mouse lascia 'activity_link' o 'myElem'. Avete qualche soluzione? Dal momento che ho esattamente [la stessa domanda] (https://stackoverflow.com/questions/45126197/how-can-i-select-everything-except-specific-element). – stack

Problemi correlati