2010-09-14 86 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"); 
} 
相关问题