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?


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
    });
});

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()

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.


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(){ });

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.