Hi,
Not entirely sure what you're trying to do, but this will fail:
$(document.body).descendants().observe
^-- Problem here
`#observe` is a function Prototype adds to *elements*, not arrays.
`#descendants` returns an array. Although you could fix this via
`#invoke`, here's an alternative:
If you're trying to catch a click wherever it occurs, just watch for
it on `document` -- the click event bubbles up the hierarchy. You can
find out what element the click actually happened on by using the
`Event#findElement` function. That starts with the deepest-down
element on which the event occurred and then searches upward for the
first element matching the selector you give it. So for example, this
code handles a click if it occurs in any `a` element, even if it
actually occurs in a `strong` or `span` or whatever within the `a`
element:
Example: http://jsbin.com/upetu
* * * *
document.observe("click", function(event) {
display("Document clicked");
var a = event.findElement('a');
if (a) {
display("Click was anchor '" + a.id + "'!");
event.stop(); // Just for our purposes
a.setStyle({backgroundColor: blue});
}
function display(msg) {
document.body.appendChild(new Element('p').update(msg));
}
});
* * * *
HTH,
--
T.J. Crowder
Independent Software Engineer
tj / crowder software / com
www / crowder software / com
On Sep 20, 11:47 am, Jason <[email protected]> wrote:
> Hello,
>
> I am modifying this:http://cpicker.com/
>
> I have made good progress, everything is working great. I now need to
> make one last modification.
>
> I think I need to do something like this but I am new to prototype and
> don't really get it.
>
> $(document.body).descendants().observe('click', function() {
> if ($('stroke_color').getStyle('display') == 'block') {
> if ({not a decendant of stroke_color}) {
> $('stroke_color').hide();
> }
> }
>
> });
>
> Can anyone help please?
>
> 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.