I have version 5.x-5.0 of simple menu installed. I recently upgraded from Drupal 5.9 to 5.16, and the hover menus do not apper now when I mouse over the parent in simplemenu. I've tried clearing the browser cache, disabling and re-enabling the module, etc. There is no JS error generated--the menu children are simply not displayed. Any suggestions as to what might be wrong?

Comments

xjm’s picture

I should note that this problem occurs both in IE7 and FF3, and that the full contents of the menu seem to be in the simplemenu js variable in the page source as (presumably) they should. It also occurs in both styles of simplemenu (the original and the black+blue).

xjm’s picture

When I disable inline CSS using FF's web developer toolbar, the child items are visible briefly until I mouse over them; then they disappear and do not reappear on mouseover. This is with the same theme that I was using in 5.9 when it functioned normally.

xjm’s picture

I used FF's developer toolbar to look at the JS-generated source, and discovered that something is appending "display:none" to simplemenu's child UL tags on the 5.16 copy of my site.

JS-generated source on the 5.9 site:

<li class="expanded root"><a href="http://drupal.org">drupal.org</a><div><ul><li class="leaf"><a href="http://api.drupal.org/">Drupal API reference</a><div></div></li>
<li class="leaf"><a href="/menu-array-full-contents">Menu array</a><div></div></li>
<li class="leaf"><a href="/themable-functions">Themable functions</a><div></div></li>
</ul></div></li>

On the 5.16 site:

<li class="expanded root"><a href="http://drupal.org">drupal.org</a><div><ul style="display: none;"><li class="leaf"><a href="http://api.drupal.org/">Drupal API reference</a><div></div></li>
<li class="leaf"><a href="/menu-array-full-contents">Menu array</a><div></div></li>
<li class="leaf"><a href="/themable-functions">Themable functions</a><div></div></li>
</ul></div></li>

If I enable Garland instead of my theme, it seems to work fine on the 5.16 site... but, reiterating, the two sites are using the exact same theme, down to the character, so I can't figure out why that inline "display:none" is getting stuck in the JS for the simplemenu bar. I'm at a loss.

xjm’s picture

Status: Active » Fixed

In simplemenu.js:

 * v1.2.1 altered: 2nd July 07. added hide() before animate to make work for jQuery 1.1.3. See comment in 'over' function.
 * v1.2.2 altered: 2nd August 07. changed over function .find('ul') to .find('>ul') for smoother animations
 *           Also deleted the iframe removal lines - not necessary it turns out
 * v1.2.3 altered: jquery 1.1.3.1 broke keyboard access - had to change quite a few things and set display:none on the
 *           .superfish rule in CSS instead of top:-999em
 * v1.3 :        Pretty much a complete overhaul to make all original features work in 1.1.3.1 and above.
 *           .superfish rule reverted back to top:-999em (which is better)

Ah-ha! The display: none was tied to a specific version of jquery. My jquery update module was not reinstalled properly following the 5.16 upgrade. Reinstalling and enabling that module resolved my issue. Might want to recommend jquery update be used with this module in general.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.