Note that there are some explanatory texts on larger screens.

plurals
  1. POJavaScript submenu doesn't work anymore after iPhone iOS 5 update
    text
    copied!<p>I have a javascript menu that works fine on Firefox, IE, Safari and iPhone/iPad iOS 4.</p> <p>Only in the iOS 5 update the submenu shows up very briefly and then disappears when a menuitems has been clicked. Does anyone know what they have changed and how I can fix this?</p> <pre><code>var dbMenu = { init: function(){ var uls = document.getElementsByTagName('ul'); for(var i = 0; i &lt; uls.length; i++){ if(uls[i].className.search(/\bdbMenu\b/) == -1) continue; var menu = uls[i]; dbMenu.styleSubMenus(menu); addEvent(menu, 'mouseover', dbMenu.hover, false); addEvent(menu, 'mouseout', dbMenu.hoverOff, false); if(menu.className.search(/\bonMouse\b/) == -1){ addEvent(menu, 'click', dbMenu.click, false); } addEvent(menu, 'click', dbMenu.nav, false); } }, hover: function(e){ var target = (window.event)? window.event.srcElement : (e)? e.target : null; if(target){ target = dbMenu.getTarget(target, 'li'); if(!target) return; }else{ return; } target.className += ' hover'; var t = (target.className.search(/\bsubMenu\b/) != -1)? target : (target.parentSubMenu)? target.parentSubMenu : null; if(!t) return; clearTimeout(t.timeout); if(target.parentMenu.className.search(/\bonMouse\b/) != -1){ t.className += ' click'; } }, hoverOff: function(e){ var target = (window.event)? window.event.srcElement : (e)? e.target : null; if(target){ target = dbMenu.getTarget(target, 'li'); if(!target) return; }else{ return; } target.className = target.className.replace(/hover/g, ''); if(target.parentMenu.className.search(/\bonMouse\b/) != -1){ var t = (target.className.search(/\bsubMenu\b/) != -1)? target : (target.parentSubMenu)? target.parentSubMenu: null; if(!t) return; t.timeout = setTimeout(function(){ t.className = t.className.replace(/click/g, ''); }, 80); } }, click: function(e){ if(window.event){ window.event.cancelBubble = true; } if(e &amp;&amp; e.stopPropagation){ e.stopPropagation(); } var target = (window.event)? window.event.srcElement : (e)? e.target : null; if(target){ target = dbMenu.getTarget(target, 'li'); if(!target) return; }else{ return; } if(target.className.search(/\bclick\b/) == -1){ target.className += ' click'; }else{ target.className = target.className.replace(/click/g, ''); } }, nav: function(e){ if(window.event){ window.event.cancelBubble = true; } if(e &amp;&amp; e.stopPropagation){ e.stopPropagation(); } var target = (window.event)? window.event.srcElement : (e)? e.target : null; if(target){ target = dbMenu.getTarget(target, 'li'); if(!target) return; }else{ return; } for(var i = 0; i &lt; target.childNodes.length; i++){ var node = target.childNodes[i]; if(node.nodeName.toLowerCase() == 'a'){ window.location = node.href; break; } } }, getTarget: function(target, elm){ if(target.nodeName.toLowerCase() != elm &amp;&amp; target.nodeName.toLowerCase() != 'body'){ return dbMenu.getTarget(target.parentNode, elm); }else if(target.nodeName.toLowerCase() == 'body'){ return null; }else{ return target; } }, styleSubMenus: function(menu){ lis = menu.getElementsByTagName('li'); for(var i = 0; i &lt; lis.length; i++){ node = lis[i]; node.parentMenu = menu; if(node.getElementsByTagName('ul').length != 0){ node.className += ' subMenu'; sublis = node.getElementsByTagName('li'); for(var j = 0; j &lt; sublis.length; j++){ sublis[j].parentSubMenu = node; } } } } } function addEvent(elm, evType, fn, useCapture){ //cross-browser event handling for IE5+, NS6+, and Mozilla/Gecko By Scott Andrew if(elm.addEventListener){ elm.addEventListener(evType, fn, useCapture); return true; }else if(elm.attachEvent){ var r = elm.attachEvent('on' + evType, fn); return r; }else{ elm['on' + evType] = fn; } } addEvent(window, 'load', dbMenu.init, false); </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload