I think it should be also working just this way:

$('#mydiv').css('cursor','pointer').click(function(){
$(this).addClass('selected');
});

No need to select all the contents "manually".

On Feb 20, 5:16 pm, spaceage <spaceageliv...@gmail.com> wrote:
> OK, so you have to independently assign a handler to all descendant
> elements in the <div>?  Is there no better way via the parent div?
>
> On Feb 20, 8:07 am, Liam Potter <radioactiv...@gmail.com> wrote:
>
> > $(document).ready(function () {
> >     $("div.clickable_element p").click( function () {
> >        $(this).parents("div.clickable_element").toggleClass("selected");
> >     });
>
> > });
> > spaceage wrote:
> > > A question re: event handling/propagation:  I have a surrounding <div>
> > > and I want any click within the <div> (including a click on any
> > > element within the div) to toggle the addition/removal of a class on
> > > the <div>.
>
> > > In this example, if the user clicks on one of the <p> elements within
> > > the <div>, my toggle doesn't work--I'm assuming because the
> > > event.target is the <p> element and not the <div>, so the add/
> > > removeClass isn't performed on the parent <div>.
>
> > > html:
> > > --------
> > > <!-- div is 200px x 200px -->
> > > <div class="clickable_element">
> > >   <p>element title</p>
> > >   <p>element label</p>
> > >   <p class="positioned_label">status text</p>
> > > </div>
>
> > > js:
> > > -----
> > > $(document).ready(function(){
> > >   $('div.clickable_element').toggle(
> > >     function(event) {
> > >       $(event.target).addClass('selected');
> > >     },
>
> > >     function(event) {
> > >       $(event.target).removeClass('selected');
> > >     }
> > >  );
>
> > > Is the way to handle this to attach separate toggle functions to the
> > > <p> elements with an alternate selector to target the parent <div>, or
> > > is there a cleaner way to handle this situation?
>
> > > TIA--David
>
>

Reply via email to