我有一个下拉菜单的代码:
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() {
$('#mainnavigation > li').bind('mouseover', jsddm_open)
$('#mainnavigation > li').bind('mouseout', jsddm_timer)});
document.onclick = jsddm_close;
我要修改它,以便下拉菜单会在“点击”上打开,而不会在“鼠标悬停”上打开,并在“鼠标输出”上关闭。我试过用这个:
$('#mainnavigation > li').bind('click', jsddm_open)
但它不起作用。
有人可以帮助我吗?
答案 0 :(得分:2)
首先,一些HTML会有所帮助。
除此之外,我认为您的功能有效,但点击<li>
也会触发document.onclick = jsddm_close;
因此,您的菜单会立即打开和关闭。
尝试摆脱document.onclick
行,看看它是否效果更好
您的return false;
功能
jsddm_open()
答案 1 :(得分:1)
你能试试吗?
$('#mainnavigation > li').click(function() {
jsddm_open();
});
无论如何,我认为你错过了方法背后的“()”,但可能只是语法对我而言是新的..