Thanks, e.stopImmediatePropagation() works fine. But e.stopPropagation
() and return false; doesn't.
Sorry John, I don't have example url available.
However I can post example code here:
<ul id="list">
<li id="item_1"><a href="#">Item 1</a></li>
<li id="item_2"><a href="#">Item 2</a></li>
<li id="item_3"><a href="#">Item 3</a></li>
<li id="item_4"><a href="#">Item 4</a></li>
</ul>
Script is:
$("#list li a").live('click', function(e) {
e.stopPropagation();
alert('a clicked');
});
$("#list li").live('click', function(e) {
alert('li clicked');
});
If I change the e.stopPropagation() line to e.stopImmediatePropagation
() then it works fine, thanks Ariel. Could it be a bug, or just me
being stupid (I am good at being stupid)?
Walther.
On Jan 19, 8:43 pm, Ariel Flesler <[email protected]> wrote:
> $('li a').live('click',function(e){
> // do stuff with link clicked
>
> });
>
> $('li').live('click',function(e){
> if( $(e.target).is('a') )
> return;
> // do stuff when li is clicked
>
> });
>
> Instead of the "if" within the second handler, you could do
> e.stopImmediatePropagation() on the first.
> Any of those should do.
>
> --
> Ariel Fleslerhttp://flesler.blogspot.com
>
> On Jan 19, 8:21 am, Walther <[email protected]> wrote:
>
> > I am having a issue with the live event functionality in jQuery 1.3.
>
> > Basically, I have a list with various options in this form:
> > <ul>
> > <li><a href="something">Bla</a></li>
> > .
> > .
> > .
> > .
> > </ul>
>
> > I want to do something when the user clicks on the list item (it has a
> > rather wide width), and I want to do something else when the user
> > clicks on the link inside the list item. Since the list is going to be
> > a dynamic list I need to use live events.
>
> > However, when I use live events and click on the <a> tag, the event
> > for the list item is also fired. I have tried putting return false;
> > and event.stopPropagation(); into the event function, it doesn't work.
> > However, when I use the normal bind() function (instead of live()) it
> > works as intended(expect for it not being a live event which I want).
>
> > I am guessing that I am doing something stupid that is preventing it
> > from working, any help would be apprechiated.
>
> > Regards
> > Walther
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" 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/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---