Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Event abfangen von JS erzeugtem Element“

Refus

aka Noisy

Einen wunderschönen Guten Morgen :)

Und wieder einmal ist es diese wunderschöne Sprache, die mich zum verzweifeln bringt.

Ich erzeuge mittels JS (jQuery) eine neue Row in einer Tabelle, diese erhält u.a. auch einen Link mit der class "remove_domain". So jetzt würde ich das onClick-Event dieses Linkes gerne abfangen. Nichts leichter als das dachte ich mir und schrieb folgende Funktion.
Code:
	$('.remove_domain').click(function(e)
	{
		e.preventDefault();
		var parent = $(this).parent().parent();
		parent.remove();
		alert('wasd');
	});
Denkste. Die Funktion greift wenn das Element nicht mit JS generiert wurde.
Die Frage jetzt also wieso nicht und wie kann ich den Fehler beheben?
Die neuen Elemente werden mit einem Klick erstellt, falls das irgendwie wichtig sein sollte, also nicht direkt beim laden der Seite.

Ich hoffe die Frage ist einigermaßen verständlich gestellt. Nebenbei hab ich noch ein weiteres Problem zudem ich noch keine Lösung gefunden habe. Der IE meckert mir am jQuery Code rum, der Code läuft aber einwandfrei im Opera/Firefox. Fehler macht die Accordion Funktion (UI/API/1.8/Accordion - jQuery JavaScript Library)
Meldung: Ungültiges Argument.
Zeile: 116
Zeichen: 165
Code: 0
URI: jquery-1.4.2.min.js

Eine gute Nacht all denjenigen, die noch nicht schlafen.
 

sokie

Mod | Web

AW: Event abfangen von JS erzeugtem Element

für die Möglichkeit auf dynamisch erzeugte Elemente eine Funktion zu binden gibt es bei jQuery "live()".
Code:
    $(".remove_domain").live("click",function(e){
      e.preventDefault();
      $(this).parents("tr").remove();
    });
 

Refus

aka Noisy

AW: Event abfangen von JS erzeugtem Element

Wunderbar, wieder was gelernt vielen Dank.
Bleibt noch letzteres Problem. Ich versteh nicht was der IE da zu meckern hat. Firefox/Opera/Safari geben noch nicht mal was in der Fehlerkonsole aus.

Der Code vom Accordion sieht so aus
Code:
	var bestell = $("#bestellvorgang");
	bestell.accordion({ autoHeight: false });
Wüsste nicht was daran falsch ist. Wäre super wenn mir da nochmal jemand helfen könnte. (Getestet im IE 8)
 
D

derkk_koenig

Guest

AW: Event abfangen von JS erzeugtem Element

Wunderbar, wieder was gelernt vielen Dank.
Bleibt noch letzteres Problem. Ich versteh nicht was der IE da zu meckern hat. Firefox/Opera/Safari geben noch nicht mal was in der Fehlerkonsole aus.

Der Code vom Accordion sieht so aus
Code:
    var bestell = $("#bestellvorgang");
    bestell.accordion({ autoHeight: false });
Wüsste nicht was daran falsch ist. Wäre super wenn mir da nochmal jemand helfen könnte. (Getestet im IE 8)

versuch mal $(bestell).accordion...

VG

der kk_koenig
 

Refus

aka Noisy

AW: Event abfangen von JS erzeugtem Element

Habs grad mal probiert. Keine Veränderung auszumachen. Funktioniert so wie es vorher auch funktioniert hat bzw. nicht im IE.

Vielen Dank trotzdem.
 
Zuletzt bearbeitet:

Myhar

Hat es drauf

AW: Event abfangen von JS erzeugtem Element

Liefert dir der IE eine Fehlermeldung/Warnung wenn du die Funktion aufrufst? (Erkennbar an dem gelben Dreieck links unten)
 

Refus

aka Noisy

AW: Event abfangen von JS erzeugtem Element

Jup, wie oben schon geschrieben, meckert er am jQuery Code.

Details zum Fehler auf der Webseite
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
Zeitstempel: Sat, 15 May 2010 12:44:55 UTC


Meldung: Ungültiges Argument.
Zeile: 116
Zeichen: 165
Code: 0
URI: http://spacequadrat.de/js/jquery-1.4.2.min.js


Das Example auf der jQuery Seite funktioniert im IE allerdings auch problemlos. Mit Version 1.3.2 funktioniert es auch nicht. Treibt mich schon fast ein bisschen in den Wahnsinn.
 

Myhar

Hat es drauf

AW: Event abfangen von JS erzeugtem Element

Verzeihung, das habe ich übersehen :-(
Aber ich kenne das nur zu gut, dass jQuery mal nicht im IE funzt... Dein JQuery-Code scheint auch nicht falsch zu sein, deshalb würde ich mal tippen, dass es in deinem Accordeon vielleicht ein element gibt, welches der ie in dem zusammenhang nicht mag? Das hatte ich mal im Zusammenhang mit einer anderen Funktion, da hatte der IE Probleme mit einem <select> Element.

Gibt dein Firefox (Firebug) eventuell auch eine Warnung aus bei dem Aufruf der Funktion?
Ansonsten würde ich mal versuchen, eine möglichst minimalistische Version der Seite zu nehmen und Testweise die Elemente hinzufügen (oder hast du das schon gemacht? )
 

saila

Moderatorle

AW: Event abfangen von JS erzeugtem Element

Jup, wie oben schon geschrieben, meckert er am jQuery Code.

Details zum Fehler auf der Webseite



Das Example auf der jQuery Seite funktioniert im IE allerdings auch problemlos. Mit Version 1.3.2 funktioniert es auch nicht. Treibt mich schon fast ein bisschen in den Wahnsinn.

Wenn du über die Einstellungen des IE gehst und darin den Debugger einschaltest/aktivierst, kannst du über den IE an die Fehlerquelle gelangen.

Abgesehen davon ist:
Code:
bestell.accordion({ autoHeight: false });
// das gleich wie
$(bestell).accordion({ autoHeight: false });
da beides letztlich ein Object darstellt. Im zweiten Fall wird das Object in jQuery gekapselt.

Warum du überhaupt eine var erstellst, ist noch fraglich.
Warum nicht gleich:
Code:
$('bestellvorang').accordion({ autoHeight: false });

Wobei ich den Fehler woanderst vermute, da es sich in diesem Bereich nicht um ein Argument handelt.
 

Refus

aka Noisy

AW: Event abfangen von JS erzeugtem Element

FF und Opera zeigen in ihren Fehlerkonsolen nichts an.
Eine Var hab nur erzeugt, weil ich auf das gleiche Element später nochmal zugreife, hab die Var allerdings auch schon ersetzt, ohne Erfolg.

Der Debugger im IE sagt mir jetzt folgendes:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht. - index.html, Zeile 251 Zeichen 2
Zeile 251 ff.:
$(document).ready(function(){
var bestell = $("#bestellvorgang");
bestell.accordion({ autoHeight: false });
$('input.continue').click(function(e)
{
e.preventDefault();
var nextStep = $(this).attr("class").replace('continue step', '');
nextStep = parseInt(nextStep)-1;
bestell.accordion("activate", nextStep);
});

Ungültiges Argument. - jquery-1.4.2.js, Zeile 4618 Zeichen 4
Dort steht
style[ name ] = value;
Datei: http://code.jquery.com/jquery-1.4.2.js

Ich werd nicht wirklich daraus schlau. Würde eher ungern den Link verschicken zumindest nicht öffentlich. Wer sich dafür interessiert kann mir eine PM schreiben, dann gibts das ganze als Demo Live und voll in Farbe ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.872
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben