Der Martin: Problem mit Funktionsaufruf nach DOM-Manipulation

Beitrag lesen

Hallo,

Dies funktioniert soweit auch. Allerdings vielleicht eher zufällig?

solche Zweifel sind manchmal ganz gut. :-)

Ich scheine da wieder irgendwas komisches zusammengefuscht zu haben.

Du meinst ge_p_fuscht?

Das Zufügen und Hochzählen funktioniert tadellos.

Das verblüfft mich, denn so wie ich deinen Code verstehe, entfernst du das neu hinzugefügte Element sofort wieder:

// DOM-Element hinzufügen und glob. Variable +=1

$('button#addLink').click(function() {
console.log('+');
LINKS_ANZAHL+=1;
// Listenelement hinzufügen .... (hier mal rausgenommen)

// Aufruf
LinkRemove();
});

  
Was soll der Aufruf von LinkRemove() in der Funktion, die diesen Eintrag gerade "mühsam" erzeugt hat?  
  

> Das Entfernen des Listenelements erstmal auch, aber die Zählervariable spinnt. Ich vermute, das Problem liegt darin, dass ich bei jedem Zufügen die Funktion LinkRemove aufrufe.  
  
Ja, eben. Wozu? Was ist der Hintergedanke dabei?  
  

> Ich weiß nicht mal mehr genau, warum ich LinkRemove() nach jedem DOM-Zufügen aufrufen muss, es geht aber derzeit nur so. Wahrscheinlich damit die Funktion immer Zugriff auf den aktuellen DOM-Baum hat?  
  
Nee, das ist irgendwie gedanklich-logischer Murks.  
  

> ~~~javascript

// DOM-Element entfernen und glob. Variable -=1	  

> var LinkRemove = function () {  
> 	$('button.removeLink').click(function() {  
> 		console.log('-');  
> 		LINKS_ANZAHL-=1;  
> 		// Listenelement entfernen => funktioniert  
> 		$(this).parent().remove();  
> 	});	  
> }

Ich frage mich gerade, ob 'this' in dieser Eventhandler-Funktion wirklich das ist, was du erwartest.

Übrigens empfiehlt sich der Operator ++ oder -- anstatt +=1 oder -=1, wenn man einen Wert um genau 1 erhöhen oder veringern möchte.

So long,
 Martin

--
Wenn dir jemand eine unschlagbare Abkürzung empfiehlt, gehe einen Umweg.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(