TJ, you inadvertently disabled "Edit using JS Bin" for this
example :)  Who is JS Bin, is that yours?  Very cool.

On Sep 20, 5:12 am, "T.J. Crowder" <[email protected]> wrote:
> 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