Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.javascript > #4761

Re: jQuery Wechsel von live() nach click()

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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