jQuery Çoklu Kimlik seçicileri


121

İşte kodumun başlangıcının bir parçası:

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

Temelde yapmaya çalıştığım şey aynı aramayı birkaç farklı kimlikle yapmak ...

Bunun işe yarayacağını varsayardım ama işe yaramıyor:

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

Herhangi bir fikir?


Kullandığınız yükleme eklentisi nedir? Önerilen eklenti geliştirme modelini takip ettiğinden emin misiniz?
bfavaretto

Çalışmalı, uploadişlevi olan bir şey olmalı . jsfiddle.net/X7TAX
Kokos

Yanıtlar:


230

Bunu dene:

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

3
Bu cevap kesinlikle işe yarayacaktır, ancak ideal olarak herhangi bir eklenti mantığı tüm eşleşen öğeler için geçerli olmalıdır.
ShankarSangoli

39

Bu örneklerden her birine kullanabileceğiniz bir sınıf verirseniz

$('.yourClass').upload()

19

Sen edebilirsiniz birden kullanmak idyazdığın yolu bu':

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

Ancak bu, kodunuzu çalıştırdığınızda bu kimliklerin DOM içinde var olduğu anlamına gelmez. Aynı zamanda uploadbunun meşru bir işlev olduğu anlamına gelmez . Ayrıca upload, bir seçimde birden çok öğeye izin verecek şekilde oluşturulmuş olduğu anlamına gelmez .

uploadözel bir jQuery eklentisidir, bu nedenle size uploadyardımcı olabilmemiz için neler olup bittiğini göstermeniz gerekir.


9

uploadEklentinin içinde uygulandığından emin olun this.each, böylece eşleşen tüm öğeler için mantığı çalıştırır. İdeal olarak çalışmalı

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

4

olması gerekiyor. Genellikle çoklu seçiciyi böyle yaparsınız. Aksi takdirde, üç yüklemenin dönüş değerlerini aynı değişkene atamaya çalışmaktan hoşlanmayabilir.

.eachDönüşleri bu değere atamak yerine kullanmayı veya belki de bir diziye itmeyi öneririm .


0

Bu işe yaramalı, virgüllerden sonra bir boşluk bırakmanız gerekebilir.

Ayrıca, daha sonra çağırdığınız işlev, yalnızca tek bir nesneyi değil, bir dizi nesneyi desteklemelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.