evento di unbind onclick per “a” all’interno di un div con evento onclick

html:

desc
foo

js:

 $('#container').click(function(){ ... my_function(); ... }); 

Funziona quando l’utente fa clic all’interno del contenitore ad eccezione di un tag.

Se l’utente fa clic su un tag, l’evento click viene triggersto. Tuttavia, voglio disabilitare la funzione di clic auto-definita per un tag. Cioè, link alla pagina senza l’evento onlick.

Questo non funziona:

 $('#container :not(a)').click(); 

Verifica se l’evento ha origine da a tag, ad esempio

 $('#container').click(function(e){ if ($(e.target).is('a')) return; ... my_function(); ... }); 

Sembra che tu voglia impedire l’evento di clic predefinito per l’ A tag A : utilizza:

 $('#container a').click(function(e) { e.preventDefault(); }); 

modificare

Per impedire che l’evento venga triggersto se l’utente fa clic su un collegamento:

 $('#container').click(function(e) { if(e.target.tagName !== 'A') { my_function(); } }); 

Albind un gestore di eventi click ai propri collegamenti per dire loro di interrompere il bubbling degli eventi dopo l’esecuzione del proprio gestore:

 $("#container a").click(function(e) { e.stopPropagation(); }) 

Le altre soluzioni non funzioneranno con collegamenti ipertestuali usando le immagini come ancoraggio. (target = object HTMLImageElement e tagName = DIV)