2010-10-15 54 views
12

我是新來的原型框架,我正在嘗試一些非常簡單和失敗的事情。我試圖迴應一個按鈕上的點擊事件,如下所示:原型 - 按元素類名稱單擊事件

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

爲什麼不能正常工作?請幫忙!

回答

21

與jQuery不同,在Prototype中處理具有多個結果的選擇器的工作方式稍有不同。您需要分別使用.each()來處理每個選定的結果。

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

這是我轉移到jQuery的原因之一。另一個原因是:知道jQuery是可銷售的,並且知道Prototype不是。

+1

那只是愚蠢。謝謝。我來自jQuery的背景,並被迫使用原型爲一個upcomming項目 - 從我所看到的是在jQuery後面dom操作方面 – David 2010-10-15 20:43:23

+0

此外 - 這從我可以看到的文檔中沒有提及! – David 2010-10-15 20:49:14

+0

我不會說它落後了數英里。它可以完成所有相同的事情,但不能像jQuery那樣簡潔。在jQuery進入市場之前,我曾使用過它。當時這是迄今爲止最好的選擇。但是,是的,用jQuery做事情要容易得多。 – 2010-10-15 20:51:41

12

也可以用單襯墊來完成,有人在評論已經建議:

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