开发者

Add onclick event on various elements on the basic of CSS class

I have various elements on a single page. They share a single class. I want to add a onclick event on all those elements using prototype.

For id I can do something like this:

Event.observe(window, 'load',
   function() 开发者_如何学Go{
$('id_of_the_element').addEventListener('onclick',any_function,true);
  }
);

This is good if we have id of the element. I want to do the same using CSS class, cause all the element share same class.

Update:

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

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

This is not working.

error:

hide is not a function


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

you got it !


a more succinct solution would be to use invoke:

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

You can set this to run when the dom is ready by placing it within this code:

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

EDIT - this will fix your other issue:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜