Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.javascript > #4761
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | de.comp.lang.javascript |
| Subject | Re: jQuery Wechsel von live() nach click() |
| Date | 2016-08-21 02:32 +0200 |
| Organization | PointedEars Software (PES) |
| Message-ID | <4025524.fQgX0d2UCM@PointedEars.de> (permalink) |
| References | <e1re7iFb2buU1@mid.individual.net> <npa41p$o8r$2@solani.org> |
Christoph M. Becker wrote:
> Am 20.08.2016 um 18:18 schrieb Robert Berghaus:
>> Ich benutzte bisher JQuery 1.4.2 und initialisierte folgendermaßen:
>> $( function() {
>> $( ".Jahr" ).live( "click", function( e ) {
>> stopDefault( e );
>> JahrAusblenden( e );
>> } );
>> } );
>>
>> Mit 2.2.4 funktionierte das nicht mehr (.live nicht bekannt), weshalb
>> ich das so machte:
>> $( function() {
>> $( ".Jahr" ).click( function( e ) {
>> stopDefault( e );
>> JahrAusblenden( e );
>> } );
>> } );
>>
>> Da ich den Inhalt der Seite aber mit AJAX lade, funktioniert das so
>> nicht; mit .live ging es auch mit AJAX.
>>
>> Ich muß also wohl nach dem Laden der Seite den gesamten Baum durchgehen,
>> und die Funktion binden, oder geht das einfacher?
>> Damit kann ich aber auch die Initialisierung weglassen, oder ist das
>> falsch?
>>
>> Gibt es vielleicht einen einfacheren Weg, live nach click?
>
> Funktioniert evtl. $.on()?
Ja, aber es löst das Problem nicht. .on("click", …) ist äquivalent zu
.click(…) und sollte Letzterem vorgezogen werden, da es zu einem
einheitlichen Codestil beiträgt, der es ermöglicht, Event-Listener besser zu
finden.
Das Problem ist aber anscheinend, dass Elemente mit der Klasse “Jahr”
dynamisch hinzugefügt werden und dann auf diesen noch kein Event-Listener
registriert ist.
Die richtige Methode ist ausserdem nicht stopDefault(), sondern
e.preventDefault() [siehe ebenfalls die API-Dokumentation; es handelt sich
bei “e” um die Referenz auf ein *jQuery*-Event-Objekt, daher hat es auch die
preventDefault-Methode, wenn die DOM-Implementierung sie für Event-Objekte
nicht bereitstellt – der übliche Ansatz für Event-Listener-Wrapper]).
[Ausser das benutzerdefinierte stopDefault() macht mehr als das jQuery-
e.preventDefault().]
--
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.
Back to de.comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar
jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-20 18:18 +0200
Re: jQuery Wechsel von live() nach click() "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-20 19:29 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-21 02:32 +0200
Re: jQuery Wechsel von live() nach click() "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-21 11:59 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-21 13:06 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <robert.berghaus@gmx.de> - 2016-08-21 12:31 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-21 13:04 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <robert.berghaus@gmx.de> - 2016-08-21 13:28 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-21 13:34 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-22 12:28 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-22 19:15 +0200
OT: Thunderbird Rewrap (was: jQuery Wechsel von live() nach click()) "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-21 15:05 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-22 12:17 +0200
Re: jQuery Wechsel von live() nach click() "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-22 15:27 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-22 16:27 +0200
Re: jQuery Wechsel von live() nach click() "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-22 17:44 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-25 12:44 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-25 23:45 +0200
Re: jQuery Wechsel von live() nach click() Robert Berghaus <Robert.Berghaus@gmx.de> - 2016-08-26 11:25 +0200
Re: jQuery Wechsel von live() nach click() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-26 21:19 +0200
csiph-web