jQuery Selectores de ID múltiples

120

Aquí hay un fragmento del inicio de mi código:

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

Básicamente, lo que estoy tratando de hacer es hacer la misma llamada con algunas ID diferentes ...

Habría asumido que esto funcionaría, pero no es así:

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

¿Algunas ideas?

Webby
fuente
¿Cuál es el complemento de carga que está utilizando? ¿Estás seguro de que sigue el patrón de desarrollo de complementos recomendado?
bfavaretto
Debería funcionar, debe ser algo con la uploadfunción. jsfiddle.net/X7TAX
Kokos

Respuestas:

230

Prueba esto:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
rsplak
fuente
3
Esta respuesta definitivamente funcionará, pero lo ideal es que cualquier lógica de complemento se aplique a todos los elementos coincidentes.
ShankarSangoli
39

Si le da a cada una de estas instancias una clase, puede usar

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

Usted puede utilizar múltiples ides la forma en que escribió:

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

Sin embargo, eso no significa que esos ID existan dentro del DOM cuando haya ejecutado su código. Tampoco significa que uploadsea ​​una función legítima. Tampoco significa que uploadse haya construido de una manera que permita múltiples elementos en una selección.

uploades un complemento de jQuery personalizado, por lo que tendrá que mostrar lo que está sucediendo uploadpara que podamos ayudarlo.

zzzzBov
fuente
9

Asegúrese de que el uploadcomplemento se implemente this.eachen él para que ejecute la lógica de todos los elementos coincidentes. Idealmente debería funcionar

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

debería. Normalmente, así es como se hacen varios selectores. De lo contrario, es posible que no le guste que intente asignar los valores de retorno de tres cargas a la misma var.

Sugeriría usar .eacho tal vez enviar los retornos a una matriz en lugar de asignarlos a ese valor.

Joseph Marikle
fuente
0

Eso debería funcionar, es posible que necesite un espacio después de las comas.

Además, la función que llame posteriormente debe admitir una matriz de objetos, y no solo un objeto singleton.

Jeremy Holovacs
fuente