Wie kann ich verhindern, dass das Event mit JQuery Live sprudelt?
Ich versuche, einige Ereignisse zu stoppen, aber stopPropagation funktioniert nicht mit "live", daher bin ich mir nicht sicher, was ich tun soll. Ich fand das auf ihrer Seite.
Live-Ereignisse sprudeln nicht auf herkömmliche Weise und können nicht mit stopPropagation oder stopImmediatePropagation gestoppt werden. Nehmen Sie zum Beispiel den Fall von zwei Klickereignissen - eines, das an "li" gebunden ist, und eines, das an "li a" gebunden ist. Bei einem Klick auf den inneren Anker werden BEIDE Ereignisse ausgelöst. Dies liegt daran, wenn ein $ ("li"). Bind ("click", fn); ist gebunden Sie sagen tatsächlich "Wann immer ein Klickereignis auf einem LI-Element - oder in einem LI-Element - auftritt, lösen Sie dieses Klickereignis aus." Um die weitere Verarbeitung für ein Live-Ereignis zu beenden, muss fn false zurückgeben
Es heißt, dass fn false zurückgeben muss, also was ich versucht habe
$('.MoreAppointments').live('click', function(e) {
alert("Hi");
return false;
});
Aber das hat nicht funktioniert und ich bin mir nicht sicher, wie ich es falsch machen soll.
Aktualisieren
Hier finden Sie weitere Informationen.
Ich habe eine Tabellenzelle und binde ein Klickereignis daran.
$('#CalendarBody .DateBox').click(function(e)
{
AddApointment(this);
});
Das AddApointment erstellt also nur ein Dialogfeld für die Benutzeroberfläche.
Jetzt befindet sich der Live-Code (MoreAppointments) in dieser Tabellenzelle und ist im Grunde ein Ankertag. Wenn ich also auf das Ankertag klicke, wird zuerst der obige Code (addApointment - führt das Ereignis zuerst aus) ausgeführt, aber mein Dialogfeld wird nicht gestartet, sondern direkt zum Ereignis (MoreAppointment) und der Code wird ausgeführt. Sobald dieser Code ausgeführt wurde, wird das Dialogfeld über "addApointment" geöffnet.
Update 2
Hier ist ein Teil des HTML. Ich habe nicht die gesamte Tabelle kopiert, da sie ziemlich groß ist und sich alle Zellen mit denselben Daten wiederholen. Bei Bedarf werde ich es posten.
<td id="c_12012009" class="DateBox">
<div class="DateLabel">
1</div>
<div class="appointmentContainer">
<a class="appointments">Fkafkafk fakfka kf414<br />
</a><a class="appointments">Fkafkafk fakfka kf414<br />
</a><a class="appointments">Fkafkafk fakfka kf414<br />
</a><a class="appointments">Fkafkafk fakfka kf414<br />
</a><a class="appointments">Fkafkafk fakfka kf414<br />
</a>
</div>
<div class="appointmentOverflowContainer">
<div>
<a class="MoreAppointments">+1 More</a></div>
</div>
</td>