On 7 sep, 08:15, mrjoops <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I expect from the following code to display only the submenu of the
> active menu. It works like a charm under Firefox and Opera but not
> under IE (at least under version 7).
> If someone could help, I would appreciate.
>
> Here is the code:
> $(document).ready(function()
> {
> $("ul").hide();
> $("ul.level1").show();
> $("li.active").next("ul").show();
>
> });
>
> Here is the HTML:
> <ul class="level1">
> <li>menu 1</li>
> <ul class="level2">
> <li>submenu 1 - 1</li>
> <li>submenu 1 - 2</li>
> </ul>
> <li class="active">menu2</li>
> <ul class="level2">
> <li>submenu 2 - 1</li>
> <li>submenu 2 - 2</li>
> </ul>
> </ul>
>
This is not valid html and the "level2" uls won't even display
without any javascript under IE.
You should instead enclose them in the parent li, such as:
<ul class="level1">
<li>menu 1
<ul class="level2">
<li>submenu 1 - 1</li>
<li>submenu 1 - 2</li>
</ul>
</li>
<li class="active">menu2
<ul class="level2">
<li>submenu 2 - 1</li>
<li>submenu 2 - 2</li>
</ul>
</li>
</ul>
and then use $("li.active ul").show(); to display it.
Regards,
Renaud Drousies