Search code examples
javascriptprototypejsdom-events

Prototype - click event by element class name


I am new to the prototype framework and am trying something really simple and failing. I am trying to respond to a click event on a button like so:

$$('.btn').observe('click', respond);
function respond(event) {
    alert("hello");
}

Why isn't this working? Please help!


Solution

  • Unlike jQuery, handing selectors with multiple results in Prototype works a little differently. You need to handle each selected result separately using .each().

    $$('.btn').each(function(element) {
        element.observe('click', respond);
    })
    

    This is one of the reasons I moved over to jQuery. The other reason: knowing jQuery is marketable and knowing Prototype is not.