我正在尝试使用滑盖关闭UL。我能够过滤掉要向下滑动的元素,并且尝试将其传递给函数并将其用作传递slideUp目标选择器的一种方式。未捕获的TypeError:对象#没有方法'slideToggle'

var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open(){
    current_element = $(this).find('#menudropdown > li ul');
    jsddm_canceltimer();
    jsddm_close(current_element);

    $('ul', this).slideDown();
}

function jsddm_close(current_element)
{
    //alert(current_element);
    current_element.slideUp();

}

function jsddm_timer(){
//  var current_element = $(this);
    closetimer = window.setTimeout(jsddm_close(current_element), timeout);
//  current_element.slideUp();
}

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)


});

最佳答案

我看不出为什么这可能行不通,但current_element似乎是一个隐含的全局。如果由于某种原因未正确设置,则将无法定义,从而导致您的问题。更改功能以绕过元素而不是依赖全局变量是否可以解决问题?

10-06 15:14