Ich weiß, dass Sie neue jQuery-Funktionen hinzufügen können, indem Sie $.fn.someFunction = function()
Ich möchte jedoch nur zu bestimmten Elementen Funktionen hinzufügen. Ich habe diese Syntax ausprobiert, aber sie funktioniert nicht $('.someElements').fn.someFunction = function()
Ich möchte dies tun, damit ich die Funktion irgendwo im Code wie folgt aufrufen kann $('someElements').someFunction();
0 Stimmen
Ich bin mir nicht sicher, ob dies überhaupt möglich ist, aber wenn es so wäre, warum sollten Sie Ihren Code verkrüppeln wollen? Wenn Sie es auf bestimmte Selektoren beschränken wollen, verwenden Sie diese Selektoren. Oder, cache das Ergebnis von
$('.someElements')
und rufen die Funktion als diese Variable plus.someFunction()
später.0 Stimmen
Das Problem ist, dass es $(...).fn nicht gibt, nur $.fn. Und das Setzen von $(...).someFunction hat nicht denselben Effekt, weil es nicht auf jedem Element in seinem eigenen Kontext ausgeführt wird.
0 Stimmen
@Robert Ich weiß nicht, warum der OP das wollte, aber ich möchte Funktionen an Elemente binden, so dass die aufrufende Funktion nicht zwischen den Elementen unterscheiden muss. Ich habe mehrere Feldtypen, von denen jeder seine eigene Validierungsmethode aufruft - da mein AJAX-Aufruf größtenteils repliziert, was das Formular ohne AJAX tut, ist es sinnvoll, eine einzelne Funktion zu schreiben, die die Validierungsfunktion aufrufen könnte, und dann nur das Attribut name und den Wert zu verwenden, um die POST-Daten aufzubauen, die gesendet würden, wenn ich die HTML-Schaltfläche "Submit" verwenden würde. Es scheint einfach mehr OOP auf diese Weise.
1 Stimmen
Einfach:
var someElements = $('.someElements'); someElements.myFunc = function() { /* code here */ };
0 Stimmen
Mögliches Duplikat von Wie begrenzt man eine jQuery-Plugin-Funktion auf einige Elemente?