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.

Reply via email to