2013-01-23 14 views
5

Recentemente ho alcuni problemi con jQuery. Diciamo solo che ho elementi come questo:jQuery Impedisce l'attivazione dell'evento genitore quando viene attivato l'evento figlio

<div id="parent1" class="parent"> 
    <div id="child1" class="children"> 
     <a href="" id="child_link1" class="child_link"></a> 
    </div> 
</div> 

e ho funzione di jQuery come questo:

$(".parent").click(function(){ 
    alert("parent is clicked"); 
}); 

$(".child_link").click(function(){ 
    alert("child link is clicked"); 
}); 

Se clicco sul child_link, genitore sarà attivato anche. Come posso creare una situazione in cui se faccio clic su child_link, il genitore non verrà attivato?

risposta

9

È necessario fermare la propagazione sull'evento bambino click, in questo modo:

$(".child_link").click(function(e) { 
    e.stopPropagation(); 
    alert("child link is clicked"); 
}); 

Example fiddle

+0

Grazie per la risposta, ho provato ad utilizzare lo stopPropagation ma purtroppo, anche l'evento child_link non è stato attivato. È tornato alla pagina principale senza fare nulla. –

+0

Ti sei ricordato di passare l'evento alla funzione? '.click (function (e) {' <- there –

4

gestore di eventi per il bambino dovrebbe essere scritto in questo modo:

$(".child_link").click(function(event){ 
    event.stopPropagation(); 
    alert("child link is clicked"); 
}); 

Questo sarà stop event bubbling e il gestore dell'evento del genitore non verrà richiamato.

+0

Grazie per la risposta, ho provato a usare stopPropagation ma sfortunatamente anche l'evento child_link non è stato attivato, ma è tornato alla pagina principale senza fare nulla. –

4

Vedi il tuo evento si sta facendo ribollire fino al suo genitore. Così qui è necessario utilizzare .stopPropagation();:

$(".child_link").click(function(ev){ 
    ev.stopPropagation(); //<----------------this stops the event to bubble up 
    alert("child link is clicked"); 
}); 
+0

motivo share downvote? plz. – Jai

+1

Non so chi è giù votando Ho votato per compensare :) –

+1

Anche tu lo meriti :) – Jai

Problemi correlati