Hi Leute,
jedes mal aufs Neue bereitet mir Javascript kopfzerbrechen.
Also ich habe in JS die Klasse (ich nenn's mal Klasse, heißt ja in JS anders) "AdvancedSearch" mit der Methode "removeSearchCriteria", die ein Dom-Node als Parameter erwartet.
So, innerhalb der Klasse erstelle ich im Konstruktor per DOM einen Link und hänge den ins Dokument ein. Beim Klicken soll jetzt besagte Klassenmethode aufgerufen werden. Ich habe es jetzt mit dem onclick-Eventhandler gelöst:
AdvancedSearch ist dabei eine globale Variable mit der Klassenreferenz und auch innerhalb der Klasse mit var AdvancedSearch = this; definiert.
So wie gesagt, das funktioniert. Nur wie bekomme ich das als JS-Aufruf im href-Attribut hin? Ich habe versucht:
Damit erscheint in der FF-Konsole:
Ich sehe gerade "Zeile 1" - merkwürdig
Wenn ich jetzt probehalber folgendes probiere:
so wird mir im Alert-Fenster der gesamte Klassenquelltext ausgegeben.
Ich weiß jetzt nicht mehr so richtig weiter. Ich bitte um Erleuchtung.
jedes mal aufs Neue bereitet mir Javascript kopfzerbrechen.
Also ich habe in JS die Klasse (ich nenn's mal Klasse, heißt ja in JS anders) "AdvancedSearch" mit der Methode "removeSearchCriteria", die ein Dom-Node als Parameter erwartet.
So, innerhalb der Klasse erstelle ich im Konstruktor per DOM einen Link und hänge den ins Dokument ein. Beim Klicken soll jetzt besagte Klassenmethode aufgerufen werden. Ich habe es jetzt mit dem onclick-Eventhandler gelöst:
Code:
var A = document.createElement('a'); A.onclick = function(){AdvancedSearch.removeSearchCriteria(this.parentNode)};
So wie gesagt, das funktioniert. Nur wie bekomme ich das als JS-Aufruf im href-Attribut hin? Ich habe versucht:
Code:
var A = document.createElement('a'); A.href = 'javascript:AdvancedSearch.removeSearchCriteria(this.parentNode);';
Code:
Fehler: AdvancedSearch.removeSearchCriteria is not a function Quelldatei: javascript:AdvancedSearch.removeSearchCriteria(this.parentNode); Zeile: 1
Wenn ich jetzt probehalber folgendes probiere:
Code:
A.href = "javascript:alert(AdvancedSearch);";
Ich weiß jetzt nicht mehr so richtig weiter. Ich bitte um Erleuchtung.
Kommentar