我已经看过很多关于此的文章,但没有一篇涉及 jQuery,所以我开始了......我正在将http://javascript-array.com/scripts/jquery_simple_drop_down_menu/中的脚本版本实现到现有应用程序中; 但是,如果不添加 alert('msg...') 作为 $(document).ready() 调用中的第一个方法,我将无法使其工作。
这似乎与加载时间无关......无论我等待多长时间,菜单都不起作用。setTimeout() 也不起作用。但是,添加 alert(),它就像一个魅力。我还可以通过 Firebug 正确执行绑定。
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open()
{ jsddm_canceltimer();
jsddm_close();
ddmenuitem = $(this).find('ul').css('visibility', 'visible');}
function jsddm_close()
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}
function jsddm_timer()
{ closetimer = window.setTimeout(jsddm_close, timeout);}
function jsddm_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
$(document).ready(function()
{ $('#jsddm > li').bind('mouseover', jsddm_open)
$('#jsddm > li').bind('mouseout', jsddm_timer)});
document.onclick = jsddm_close;