jQuery Wiele selektorów identyfikatorów

120

Oto fragment początku mojego kodu:

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

Zasadniczo próbuję wykonać to samo połączenie z kilkoma różnymi identyfikatorami ...

Przypuszczałem, że to zadziała, ale tak nie jest:

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

Jakieś pomysły?

Webby
źródło
Jakiej wtyczki do przesyłania używasz? Czy na pewno jest zgodny z zalecanym wzorcem rozwoju wtyczki?
bfavaretto
Powinno działać, musi być coś z uploadfunkcją. jsfiddle.net/X7TAX
Kokos

Odpowiedzi:

230

Spróbuj tego:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
rsplak
źródło
3
Ta odpowiedź na pewno zadziała, ale w idealnym przypadku każda logika wtyczki powinna mieć zastosowanie do wszystkich dopasowanych elementów.
ShankarSangoli
39

Jeśli nadasz każdej z tych instancji klasę, której możesz użyć

$('.yourClass').upload()
tonycoupland
źródło
19

Państwo może używać wielu id„s tak, jak pisał:

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

Nie oznacza to jednak, że te identyfikatory istnieją w DOM, kiedy wykonałeś swój kod. Nie oznacza to również, że uploadjest to legalna funkcja. Nie oznacza to również, że uploadzostał zbudowany w sposób, który pozwala na wybór wielu elementów.

uploadjest niestandardową wtyczką jQuery, więc musisz pokazać, co się dzieje, uploadabyśmy mogli Ci pomóc.

zzzzBov
źródło
9

Upewnij się, że uploadwtyczka zaimplementuje this.eachw niej swoją implementację , aby wykonywała logikę dla wszystkich pasujących elementów. Powinien idealnie działać

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });
ShankarSangoli
źródło
4

powinno. Zwykle w ten sposób robi się wiele selektorów. W przeciwnym razie może nie podobać się próba przypisania wartości zwracanych z trzech przesłanych plików do tej samej zmiennej.

Sugerowałbym użycie .eachlub może wypchnięcie zwrotów do tablicy zamiast przypisywania ich do tej wartości.

Joseph Marikle
źródło
0

To powinno działać, możesz potrzebować spacji po przecinkach.

Ponadto wywoływana później funkcja musi obsługiwać tablicę obiektów, a nie tylko pojedynczy obiekt.

Jeremy Holovacs
źródło