2015-07-06 15 views
6

ho il DOM come questoprevenire bubling evento non funziona in jQuery

<div class="modal"> 
<li> 

<div id="block1"></div> 
<div id="block2"> 

<div class="btn-wrap"> 
<button>cancel</button> 
<button>save</button> 
</div> 

</div> 

</li> 

Ho un evento click attaccato alla Li e quando clicco il tasto di blocco2, si è verificato l'evento. Come impedire che ciò accada?

Ho provato a usare on() ma non funziona.

$('.btn-wrap').on('click','button:first-child',function(e){ 
      e.preventDefault(); 
      alert('test'); 
     }); 

risposta

3

Si dovrebbe usare stopPropagation per impedire spumeggiante evento:

$('.btn-wrap').on('click','button:first-child',function(e){ 
    e.stopPropagation(); 
    alert('test'); 
}); 
+0

ah stopPropagation(), dimenticato attacco questo! ha funzionato grazie! btw se non uso su(), lego direttamente l'evento click e uso stoPropagazione, funzionerà? –

+0

sì, funziona ... –

1

Aggiungi event.stopPropagation() al gestore

$('.btn-wrap').on('click', 'button:first-child', function(e) 
{ 
    e.preventDefault(); 
    e.stopPropagation(); 

    alert('test'); 
}); 
Problemi correlati