jQuery Multiple ID selectors

120

Aqui está um snippet do início do meu código:

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

Basicamente, o que estou tentando fazer é fazer a mesma chamada com alguns IDs diferentes ...

Eu teria assumido que isso funcionaria, mas não:

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

Alguma ideia?

Webby
fonte
Qual é o plugin de upload que você está usando? Tem certeza de que segue o padrão de desenvolvimento de plug-in recomendado?
bfavaretto de
Deve funcionar, deve ser algo com a uploadfunção. jsfiddle.net/X7TAX
Kokos de

Respostas:

230

Experimente isto:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
rsplak
fonte
3
Essa resposta certamente funcionará, mas o ideal é que qualquer lógica de plug-in se aplique a todos os elementos correspondentes.
ShankarSangoli de
39

Se você der a cada uma dessas instâncias uma classe que você pode usar

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

Você pode usar vários idda maneira que escreveu:

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

No entanto, isso não significa que esses ids existam no DOM quando você executou seu código. Também não significa que uploadseja uma função legítima. Também não significa que uploadfoi construído de uma forma que permite vários elementos em uma seleção.

uploadé um plugin jQuery customizado, então você terá que mostrar o que está acontecendo uploadpara que possamos ajudá-lo.

zzzzBov
fonte
9

Certifique-se de que o uploadplug-in seja implementado de this.eachforma que execute a lógica para todos os elementos correspondentes. Deve funcionar idealmente

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

deveria. Normalmente é assim que você faz vários seletores. Caso contrário, pode ser que você não goste de atribuir os valores de retorno de três uploads à mesma var.

Eu sugeriria usar .eachou talvez empurrar os retornos para uma matriz em vez de atribuí-los a esse valor.

Joseph Marikle
fonte
0

Isso deve funcionar, você pode precisar de um espaço após as vírgulas.

Além disso, a função que você chamar depois deve suportar uma matriz de objetos, e não apenas um objeto singleton.

Jeremy Holovacs
fonte