Weiterreichen des this-Objekts in jQuery
Cortys
- javascript
Hallo allerseits!
Ich baue gerade ein JavaScript-Framework, welches auf jQuery aufbaut.
Nun habe ich allerdings das Problem, dass ich das this-Objekt einer anonymen Callback-Funktion an eine andere Funktion weiterleiten möchte. Dies soll so geschehen, dass z.B. so etwas möglich ist:
function meineFunktion() {
$(this).remove();
}
$(Objekt).click(function() {
...
meineFunktion();
...
});
Einfach eine globale Variable zu definieren geht in meinem Fall nicht, da das erwähnte Framework möglichst ohne solche Helferlein auskommen soll.
Ich hoffe mein Problem wurde verstanden und freue mich auf Vorschläge!
Danke für die Antworten! Das besagte "Framework" ist schon relativ weit vorangeschritten und ist mehr eine unabhängige Funktions und Objekt-Bibliothek.
Daher wäre es sehr viel Arbeit auf die jQuery-Plugins umzusteigen. Ich sehe ein, dass diese auf Dauer eine bessere Struktur bringen, aber um den Zeitaufwand so gering wie möglich zu halten werde ich wohl doch call verwenden. Ich muss das this-Objekt ja auch nur in einem einzigen Fall weiterreichen und dafür ist diese Lösung auf jedem Fall gut genug.
In Zukunft schaue ich mir aber auf jeden Fall die Plugins näher an. Nicht, dass ich nochmal eine unsaubere Struktur aufbaue.
Einen schönen Tag noch!
Ich muss das this-Objekt ja auch nur in einem einzigen Fall weiterreichen und dafür ist diese Lösung auf jedem Fall gut genug.
Wieso übergibst du das Element nicht einfach als Parameter?
Mathias
Ich muss das this-Objekt ja auch nur in einem einzigen Fall weiterreichen und dafür ist diese Lösung auf jedem Fall gut genug.
Wieso übergibst du das Element nicht einfach als Parameter?
Mathias
Wie schon oft gesagt handelt es sich um eine Art Framework. Die im Beispiel genannte Funktion "meineFunktion" wird vom User definiert und der soll nicht die Vorgabe haben ein this-Attribut in seine Funktion einzubauen.
Das ist der einzige Grund. Würde ich das Teil nur für mich schreiben, hätte ich damit ja auch kein Problem gehabt.
Hallo,
function meineFunktion() {
$(this).remove();
}$(Objekt).click(function() {
...
meineFunktion();
...
});
Du könntest natürlich sämtliche Funktionsaufrufe mit call oder apply vornehmen, aber das ist auf Dauer wenig sinnvoll. Ich weiß ja nicht, was für ein Interface du dir bei deinem »Framework« wünscht und woraus das bestehen soll. Du hast hier jedenfalls verschiedene Möglichkeiten, objektorientiert zu arbeiten. meineFunktion könnte eine Methode eines Objektes sein, welches in einer Eigenschaft das Element beherbergt. Siehe [Konstruktoren, Prototypen, Instanzen](http://molily.de/js/organisation-instanzen.html) sowie [Module](http://molily.de/js/organisation-module.html). Wenn es sich um eine Sammlung von Methoden zur Operation auf DOM-Elementen handelt, so wären jQuery-Plugins (Erweiterungen des jQuery-Prototyps) sinnvoll, siehe <http://docs.jquery.com/Plugins/Authoring> und <http://api.jquery.com/jQuery.sub/>.
Mathias