jQuery Mehrere ID-Selektoren

120

Hier ist ein Ausschnitt aus dem Anfang meines Codes:

var myUpload = $("#upload_link").upload({bla bla bla

Grundsätzlich versuche ich, den gleichen Anruf mit ein paar verschiedenen IDs zu tätigen ...

Ich hätte angenommen, dass dies funktionieren würde, aber es funktioniert nicht:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({

Irgendwelche Ideen?

Webby
quelle
Was ist das Upload-Plugin, das Sie verwenden? Sind Sie sicher, dass es dem empfohlenen Plugin-Entwicklungsmuster folgt?
Bfavaretto
Es sollte funktionieren, muss etwas mit der uploadFunktion sein. jsfiddle.net/X7TAX
Kokos

Antworten:

230

Versuche dies:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
rsplak
quelle
3
Diese Antwort wird definitiv funktionieren, aber im Idealfall sollte jede Plugin-Logik für alle übereinstimmenden Elemente gelten.
ShankarSangoli
39

Wenn Sie jeder dieser Instanzen eine Klasse geben, können Sie sie verwenden

$('.yourClass').upload()
Tonycoupland
quelle
19

Sie können mehrere verwenden id, wie Sie geschrieben haben:

$('#upload_link, #upload_link2, #upload_link3')

Dies bedeutet jedoch nicht, dass diese IDs im DOM vorhanden sind, wenn Sie Ihren Code ausgeführt haben. Dies bedeutet auch nicht, dass dies uploadeine legitime Funktion ist. Dies bedeutet auch nicht, dass uploaddas Gerät so erstellt wurde, dass mehrere Elemente in einer Auswahl berücksichtigt werden können.

uploadist ein benutzerdefiniertes jQuery-Plugin, daher müssen Sie zeigen, was los ist, damit wir Ihnen uploadhelfen können.

zzzzBov
quelle
9

Stellen Sie sicher, dass das uploadPlugin implementiert this.eachist, damit die Logik für alle übereinstimmenden Elemente ausgeführt wird. Es sollte idealerweise funktionieren

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });
ShankarSangoli
quelle
4

es sollte. In der Regel führen Sie so mehrere Selektoren aus. Andernfalls möchten Sie möglicherweise nicht versuchen, die Rückgabewerte von drei Uploads derselben Variablen zuzuweisen.

Ich würde vorschlagen .each, die Rückgaben zu verwenden oder möglicherweise an ein Array zu senden, anstatt sie diesem Wert zuzuweisen.

Joseph Marikle
quelle
0

Das sollte funktionieren, möglicherweise benötigen Sie ein Leerzeichen nach den Kommas.

Außerdem muss die Funktion, die Sie anschließend aufrufen, ein Array von Objekten unterstützen und nicht nur ein Singleton-Objekt.

Jeremy Holovacs
quelle