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?


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

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

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.


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

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.