You're right. I've adjusted my test case slightly and tested in more browsers. Apparently, Safari put me on the wrong track - it's the only browser that handles it the way I expected it to (and the only browser I checked in). Thanks a lot, this was a good learning experience for me!
Jeroen On Aug 29, 9:35 pm, "Brandon Aaron" <[EMAIL PROTECTED]> wrote: > Whoops :) that should be: > > #test > li > a > > That will only select the direct a tags of the LI. Previously you where > selecting all A tags of the LI. Even the A tags within the other child > elements of the LI. > > -- > Brandon Aaron > > On 8/29/07, Brandon Aaron <[EMAIL PROTECTED]> wrote: > > > > > Actually it works this way in the CSS Spec also and your test file proves > > it. Just use this selector instead of your other selector: > > > #test > li a > > > -- > > Brandon Aaron > > > On 8/29/07, Jeroen Coumans <[EMAIL PROTECTED]> wrote: > > > > Thanks for the explanation, that makes sense. But this is not how the > > > CSS spec has it defined. You can see that in my test file where the > > > CSS rule is only applied to the top list items. > > > > The question is; is the jQuery behaviour a bug or a feature? And if > > > it's a feature, it should be documented. > > > > Jeroen > > > > On Aug 29, 2:01 pm, "Brandon Aaron" <[EMAIL PROTECTED]> wrote: > > > > Because you are binding the click event to the a tag, not the li. So > > > what > > > > your saying is get all the a tags within each li (which is all the a > > > tags in > > > > your ul). You just need one more child selector in there between the > > > li and > > > > a to make sure you only select the immediate a tags of the li only ... > > > > > instead of all the a tags within the li. > > > > > $('#test > li > a').click(...); > > > > > -- > > > > Brandon Aaron > > > > > On 8/29/07, Jeroen Coumans < [EMAIL PROTECTED]> wrote: > > > > > > Hi, > > > > > > See <http://lab.jeroencoumans.nl/jquery/child-selector.html> > > > > > It's my understanding that child selectors only select direct > > > children > > > > > of an element. Thus, $('#test > li') should only select direct > > > > > descendent <li> elements of #test, not nested <li>'s. This is > > > > > confirmed with a simple CSS rule. So how come, when I attach a click > > > > > event to a direct child, it seems to attach itself to all > > > > > descendents? > > > > > > Regards, Jeroen