我在一个页面上有各种元素。他们共享一个班级。 我想使用原型在所有这些元素上添加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
答案 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");
}