在css类的基础上添加各种元素的onclick事件

时间:2010-09-14 11:38:36

标签: javascript-events onclick prototypejs

我在一个页面上有各种元素。他们共享一个班级。  我想使用原型在所有这些元素上添加onclick事件。

对于id我可以做这样的事情_

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

2 个答案:

答案 0 :(得分:1)

$$('.myClass').each(
  function(element){
    Event.observe("click",element,any_function);
}
);
你知道了!

答案 1 :(得分: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");
}