2010-09-14 60 views
1

我在單個頁面上有各種元素。他們共享一個班級。 我想使用原型在所有這些元素上添加一個onclick事件。在css類的基礎上的各種元素上添加onclick事件

對於ID我可以這樣做THIS_

Event.observe(window, 'load', 
    function() { 
$('id_of_the_element').addEventListener('onclick',any_function,true); 
    } 
); 

這是好事,如果我們有元素的ID。我想用css類來做同樣的事情,讓所有的元素共享同一個類。

更新:

document.observe("dom:loaded", function() { 
    $$('.message').invoke('observe', 'click', hide_all_messages) 
}); 

function hide_all_messages() 
{ 
$$('.message').hide(); 
} 

這是行不通的。

錯誤:

hide is not a function 

回答

1
$$('.myClass').each(
    function(element){ 
    Event.observe("click",element,any_function); 
} 
); 

你得到它!

+0

請chec k更新部分... – 2010-09-16 08:47:22

+0

$$(「。message」)。invoke(「hide」) – 2010-09-20 07:18:21

1

一個更簡潔的解決方案是使用invoke

$$('.elements').invoke('observe', 'click', yourfunction) 

您可以將其設置爲當DOM是把它放在這個代碼中準備運行:

document.observe("dom:loaded", function() { 
    $$('.elements').invoke('observe', 'click', yourfunction) 
}); 

編輯 - 這將解決您的其他問題:

function hide_all_messages(){ 
    $$('.message').invoke("hide"); 
} 
相關問題