在下面的例子中,我很好奇我仍然可以使用向上滑动和滑动来为ul显示动画。我的混淆意味着,slideUp / slideDown显示为none,看起来在这个例子中你正在使用另一个css属性,visibility。在函数jsddm_open上,我想让UL滑入并滑出。谢谢你的时间。
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open()
{ jsddm_canceltimer();
jsddm_close();
dmenuitem = $(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(){
$('#menudropdown > li').bind('mouseover', jsddm_open)
$('#menudropdown > li').bind('mouseout', jsddm_timer)
});
document.onclick = jsddm_close;
答案 0 :(得分:0)
查看jquery函数.slideToggle():
http://api.jquery.com/slideToggle/
这将允许您为元素设置动画,而无需检查其当前的可见性状态。
修改
可以将选择器指定为变量并在函数之间传递。
function jsddm_open()
{
var current_element = $(this);
jsddm_canceltimer();
jsddm_close(current_element);
$("ul", this).slideDown();
}
function jsddm_close(current_element)
{
if(ddmenuitem) ddmenuitem.css('display', 'none'){
current_element.slideUp();}
;}