Hi,
The $$ function returns an array[1]. Arrays don't have an `observe`
method. However, Prototype does add an `invoke` method[2] to arrays by
mixing the Enumerable mix-in into them. So:
$$('input.compare_itm').invoke('observe', 'click', myFunction);
That said, you'll end up hooking the event on each individual element.
If it's an event that bubbles (and 'click' does bubble), you're
probably better off hooking the event once on an ancestor element
(could even be `document`) that all of those elements share, and then
checking whether the click was on one of your desired elements:
theAncestorElement.observe('click', myFunction);
function myFunction(event) {
var element = event.findElement('input.compare_itm');
if (element) {
// Process it
}
}
That uses the Element#findElement[3] feature. Alternately, as of
Prototype 1.7, you can use the new Element#on[4] feature. I haven't
used it, but I think that looks like this:
theAncestorElement.on('click', 'input.compare_itm', myFunction);
function myFunction(event, element) {
// Use the `element` arg to know which input was clicked
}
Very much worth taking an hour and reading through the API from
beginning to end.
HTH,
--
T.J. Crowder
Independent Software Consultant
tj / crowder software / com
www.crowdersoftware.com
[1] http://api.prototypejs.org/language/dollardollar/
[2] http://api.prototypejs.org/language/enumerable/prototype/invoke/
[3] http://api.prototypejs.org/dom/event/findelement/
[4] http://api.prototypejs.org/dom/event/on/
On Aug 23, 8:35 am, elivol <[email protected]> wrote:
> Hello
> I have a problem with adding event "click" to elements by class name.
> I'm trying to add event onclick to all input tags that have class
> "compare_itm" by this code:
> $$('input.compare_itm').observe('click', myFunction);
>
> But it doesn't work. Is it possible to do in Prototype ?
> thanks
--
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.