jQuery selettori di ID multipli


120

Ecco uno snippet dell'inizio del mio codice:

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

Fondamentalmente quello che sto cercando di fare è fare la stessa chiamata con alcuni ID diversi ...

Avrei pensato che avrebbe funzionato ma non è così:

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

Qualche idea?


Qual è il plug-in di caricamento che stai utilizzando? Sei sicuro che segua il modello di sviluppo del plugin consigliato?
bfavaretto

Dovrebbe funzionare, deve essere qualcosa con la uploadfunzione. jsfiddle.net/X7TAX
Kokos

Risposte:


230

Prova questo:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});

3
Questa risposta funzionerà sicuramente, ma idealmente qualsiasi logica del plug-in dovrebbe essere applicata a tutti gli elementi corrispondenti.
ShankarSangoli

39

Se assegni a ciascuna di queste istanze una classe che puoi usare

$('.yourClass').upload()

19

È possibile utilizzare più id'il modo in cui hai scritto:

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

Tuttavia, ciò non significa che quegli ID esistano all'interno del DOM quando hai eseguito il tuo codice. Inoltre, non significa che uploadsia una funzione legittima. Inoltre, non significa che uploadsia stato costruito in modo da consentire più elementi in una selezione.

uploadè un plug-in jQuery personalizzato, quindi dovrai mostrare cosa sta succedendo uploadper permetterci di aiutarti.


9

Assicurati che il uploadplugin sia implementato this.eachin esso in modo che esegua la logica per tutti gli elementi corrispondenti. Idealmente dovrebbe funzionare

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

4

dovrebbe. In genere è così che si eseguono più selettori. Altrimenti potrebbe non piacere che tu provi ad assegnare i valori di ritorno di tre caricamenti alla stessa var.

Suggerirei di utilizzare .eacho forse spingere i ritorni a un array piuttosto che assegnarli a quel valore.


0

Dovrebbe funzionare, potresti aver bisogno di uno spazio dopo le virgole.

Inoltre, la funzione chiamata in seguito deve supportare un array di oggetti e non solo un oggetto singleton.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.