2009-10-08 15 views
10

Şu anki gibi bir şey kullanıyorum:JQuery tıklama işlevine çoklu argümanlar nasıl gönderilir?

$('.myclass').click(function(){ 
    var msg = $(this).attr('id'); 
    alert(msg) 
}); 

Ve HTML:

< a href="#" class="myclass" id="101">Link</a> 

Ek parametrelere ihtiyacım olursa bunları nasıl okuyacağım? Şu anki yolu uygun şekilde kullanıyorum mı? Aslen gizli girdi alanları kullanıyordum, bu yüzden zaten bir adımdı. : p

+0

Bir numara ile bir kimlik başlatmak için kötü bir anlaşma olarak kabul edilir, ancak bir kimlik olarak kullanmıyorsanız, o zaman muhtemelen tamam - Firefox bir sayı ile başlayan bir kimlik tanımıyor. – Mottie

+0

evet, bu doğru fudgey ... kimliklerini bir sayıya kadar başlatma, ama cevabımdaki fikir hala aynı. – Jason

cevap

18

jQuery Events

jQuery .click()

$('.myclass').bind("click", { Param1: "", Param2: 2 }, function(event){ 
    alert(event.data.Param2); 
}); 
+3

Bu, bu işlevi aynı sayfaya eklemek zorunda kalacağım anlamına mı geliyor? Şu anda tüm js şeyleri ayrı bir dosyada. – Roger

+0

Yani, olay verilerinde json nesnesinin tamamını geçmek mümkün, değil mi? Güzel özellik. –

+0

@Roger işlevinin dışında da olabilir, sadece yanıt gösterdiğinde event.data.ParamX yöntemini kullanarak dış işlevin argümanlarını ayrıştırdığınızdan emin olun. Mükemmel çalışıyor. – andreszs

1

bu kadar olay işleyicisi için ek veri göndermek, ama bir şey ben yapmış olabilir id="101-red-420582" gibi diğer param'larla diğer özniteliklerle id özniteliğini tanımlamak ve split() kullanarak kolayca parçalanabilir işlevi. En iyi değil, ama ben yaptım ve işe yarıyor.

+2

Tesadüfen bu tam bir fikirle geldim ve gayet iyi çalışıyordu, ama doğru yolun ve bazen dizenin çok büyük olabileceğinden emin olmadığın gibi (id'in bir sınırı varsa bile emin değilim). – Roger

+0

Her zaman benzer bir yöntem kullanıyorum, ancak 'id' yerine 'rel' özelliğini kullanıyorum. HTML de dahil olmak üzere ihtiyaç duyduğunuz kadar bilgi tutacağına inanıyorum. – Mottie

0
Hızlı Çözüm

<p class="msg_head" id="837" rel="a" **till_limit="9"**>Header-1 </p>

ve Bu kendi kimliğini tanımlamak ve şartının eleman başvurmak gibi benzer bir çözümdür

$(this).attr('till_limit'); 

gibi başvurabilir.

+1

Lütfen gönderilerinizde [imzaları veya sloganları kullanmayın] (http://stackoverflow.com/faq#signatures). – meagar

İlgili konular