Ich habe so ein Stück html:Span innen Anker mit Ereignis sprudelnden
<li class="addToFriends"><a href="....">Something something<span>INSIDE SPAN</span>something</a></li>
AJAX Anfrage zu bearbeiten, wenn sie auf Anker klicken Ich habe mich registriert Handler auf Click-Ereignis:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (target.is('a')) {
// if I click on SPAN element following fragment won't execute!
// do ajax request
}
event.preventDefault();
});
Meine Fragen sind :
- warum click event für span element ausgelöst wird? Schließlich bin ich Click-Ereignis nicht an SPAN-Elemente gebunden
- abgesehen von der vorherigen Frage, dachte ich, dass, wenn ich SPAN Klickereignis behandeln wird, Browser Event-Bubbling Click-Ereignis für Anker zu erhöhen (wenn ich gewonnen habe Rufen Sie nicht event.stopPropagation() auf. Aber ich habe auch nicht für mich arbeiten, wie das Click-Ereignis nur einmal angehoben
So, jetzt habe ich dazu gekommen, dass Problem, das ich meine Lösung ist:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (!target.is('a')) {
target = target.parent('a')
}
...
});
aber immer noch, ich bin neugierig, warum es so funktioniert ...
Danke,
Paweł
Vielen Dank für Hilfe. Nach den genannten Artikeln ist alles kristallklar. Und anstatt auf ** e.target ** zu verweisen (was sich ändern kann), beziehe ich mich auf ** this ** (was immer Anker ist). – dragonfly
Danke, ich werde genauer in Spezifikation und Artikel schauen. Wie auch immer, du könntest diese Frage beantworten:> warum Klick-Event für den Bereich > Element ausgelöst wird? Schließlich bin ich nicht gebunden > Ereignis zu SPAN-Elemente klicken, weil, vor allem das ein Problem für mich ist. – dragonfly