2011-09-12 28 views
6

Ho un po 'di html.Tag di ancoraggio HTML con tag italico

<a href="#"> 
    <i class="some-bg" /> 
    Some Text 
</a> 

E alcuni Javascript.

$("a").bind("touchstart", function (e) { 
    e.preventDefault(); 

    console.log("Tag: " + e.target); 
    console.log("Tag Name: " + e.target.tagName); 
}); 

La risposta è.

Tag: [object HTMLElement] 
Tag Name: I 

Perché? Non dovrebbe essere ancora?

AGGIORNATO

$("a, a *").bind(function() { 
    e.stopPropagation(); 

    // other stuff 
}); 

Sarà questo fare il trucco?

+0

Perché non provare '' invece? – jrummell

+3

Ricorda che 'i',' b' e 'u' non significano molto sulla tua semantica. [Ci sono modi migliori] (http://www.impressivewebs.com/bold-italic-html5/) ... –

risposta

4

Perché?

Perché hai toccato il <i> (e quindi l'evento gorgogliare fino al <a>).

Non dovrebbe essere ancora?

No. Utilizzare currentTarget se si desidera che l'elemento a cui è associato l'evento piuttosto che quello che ha effettivamente attivato l'evento.

+0

accadrebbe come se tocchi "i" e l'evento venga sparato due volte? – Neutralizer

+0

hey Ho appena capito il problema. Il problema è che "i" è il "a" e anche la maggior parte dello spazio dei pulsanti è l'immagine di sfondo di "i", quindi quando provo a toccare il pulsante e se il mio dito è appena sopra l'immagine e non il testo , il conduttore non viene licenziato. Come posso rettificare questo? – Neutralizer