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()

Path csiph.com!weretis.net!feeder4.news.weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.javascript
Subject Re: jQuery Wechsel von live() nach click()
Date Sun, 21 Aug 2016 02:32:41 +0200
Organization PointedEars Software (PES)
Lines 54
Message-ID <4025524.fQgX0d2UCM@PointedEars.de> (permalink)
References <e1re7iFb2buU1@mid.individual.net> <npa41p$o8r$2@solani.org>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
X-Trace solani.org 1471739591 7349 eJwNwgERwDAIA0BLA5Iw5Iy2+JfQ3T9DppUQBc5PWk2z7B55thoIx8vsXTUbdR6vQsQh0r8LDcUQVQ== (21 Aug 2016 00:33:11 GMT)
X-Complaints-To abuse@news.solani.org
NNTP-Posting-Date Sun, 21 Aug 2016 00:33:11 +0000 (UTC)
User-Agent KNode/4.14.2
X-NNTP-Posting-Host eJwFwQkBwDAIA0BLPCF0ckYB/xJ6F07lTTCI2FhY/3pmfDEX5nV2oqVLbJNI6Fe2whR3RtYDJL8Qzg==
X-User-ID eJwFwQcBADAIAzBLvHLswMC/hCVQZ58whxsOF5WJSjqOtIJoulC10XZLdpXvKgVvvgYNUzyRwl3MxVP5FsQUaA==
Cancel-Lock sha1:5pnFmgTydFmZbOFBBhscePxwRbs=
Xref csiph.com de.comp.lang.javascript:4761

Show key headers only | 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