2010-10-15 24 views
12

Prototip çerçevesine yeni katılıyorum ve gerçekten basit ve başarısız bir şey deniyorum. Böyle bir düğmeyle bir tıklama olayına yanıt vermeye çalışıyorum:Prototype - click olayı öğe sınıf adına göre

$$('.btn').observe('click', respond); 
function respond(event) { 
    alert("hello"); 
} 

Neden bu çalışmıyor? Lütfen yardım et!

cevap

21

jQuery'den farklı olarak, Prototip içinde birden çok sonucu olan seçicileri teslim etmek biraz farklı çalışır. Seçilen her sonucu .each() kullanarak ayrı ayrı ele almanız gerekir.

$$('.btn').each(function(element) { 
    element.observe('click', respond); 
}) 

Bu benim jQuery üzerine taşındı nedenlerinden biridir. Diğer sebep: jQuery'yi bilmek, pazarlanabilir ve prototipin bilinmemesidir. birileri bir yorumda önerildiği gibi

+1

bunlar sadece aptal. Teşekkürler. Ben bir jquery arka plan ve bir upcomming proje için prototip kullanmak zorundayım - benim gördüklerimden dom manipülasyonu – David

+0

için jquery arkasında mil olduğunu - Ben bu görebildiğimden belgelere bahsedilen değil! – David

+0

Arkasında mil olduğunu söyleyemem. Aynı şeylerin hepsini yapabilir, ancak jQuery gibi kısa bir şekilde yapamaz. JQuery piyasaya çıkmadan önce onunla çalıştım. O zamanlar çok iyi bir seçim oldu. Ama evet, jQuery ile şeyler yapmak çok daha kolay. –

12

da, tek astar ile yapılabilir edilebilir:

$$('.btn').invoke('observe', 'click', respond); 
İlgili konular