jQuery Sélecteurs d'ID multiples

121

Voici un extrait du début de mon code:

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

En gros, ce que j'essaie de faire, c'est de passer le même appel avec quelques identifiants différents ...

J'aurais supposé que cela fonctionnerait, mais ce n'est pas le cas:

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

Des idées?

Webby
la source
Quel est le plugin de téléchargement que vous utilisez? Êtes-vous sûr qu'il suit le modèle de développement de plug-in recommandé?
bfavaretto
Cela devrait fonctionner, cela doit être quelque chose avec la uploadfonction. jsfiddle.net/X7TAX
Kokos

Réponses:

230

Essaye ça:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
rsplak
la source
3
Cette réponse fonctionnera certainement, mais idéalement, toute logique de plugin devrait s'appliquer à tous les éléments correspondants.
ShankarSangoli
39

Si vous attribuez à chacune de ces instances une classe, vous pouvez utiliser

$('.yourClass').upload()
tonycoupland
la source
19

Vous pouvez utiliser plusieurs idcomme vous avez écrit:

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

Cependant, cela ne signifie pas que ces identifiants existent dans le DOM lorsque vous avez exécuté votre code. Cela ne signifie pas non plus que uploadc'est une fonction légitime. Cela ne signifie pas non plus que cela uploada été construit de manière à permettre plusieurs éléments dans une sélection.

uploadest un plugin jQuery personnalisé, vous devrez donc montrer ce qui se passe uploadpour que nous puissions vous aider.

zzzzBov
la source
9

Assurez-vous que le uploadplugin l'implémente this.eachafin qu'il exécute la logique pour tous les éléments correspondants. Cela devrait idéalement fonctionner

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

cela devrait. C'est généralement ainsi que vous effectuez plusieurs sélecteurs. Sinon, il se peut que vous n'essayiez pas d'attribuer les valeurs de retour de trois téléchargements à la même variable.

Je suggérerais d'utiliser .eachou peut-être de pousser les retours vers un tableau plutôt que de les affecter à cette valeur.

Joseph Marikle
la source
0

Cela devrait fonctionner, vous aurez peut-être besoin d'un espace après les virgules.

En outre, la fonction que vous appelez par la suite doit prendre en charge un tableau d'objets, et pas seulement un objet singleton.

Jeremy Holovacs
la source