Javascript 调试脚本$(此)时出现问题。查找不是函数

Javascript 调试脚本$(此)时出现问题。查找不是函数,javascript,jquery,Javascript,Jquery,调试此脚本时遇到问题,最初的问题是“$()。ready不是函数”,因此我包装了脚本的这一部分: $(document).ready(function() { $('#jsddm > li').bind('mouseover', jsddm_open); $('#jsddm > li').bind('mouseout', jsddm_timer);}); document.onclick = jsddm_close; 像这样 ( function($) { $

调试此脚本时遇到问题,最初的问题是“$()。ready不是函数”,因此我包装了脚本的这一部分:

$(document).ready(function()
{   $('#jsddm > li').bind('mouseover', jsddm_open);
    $('#jsddm > li').bind('mouseout',  jsddm_timer);});

document.onclick = jsddm_close;
像这样

 ( function($) { 
  $(document).ready( function() { 

  $('#menu-main-nav > li').bind('mouseover', jsddm_open);
  $('#menu-main-nav > li').bind('mouseout',  jsddm_timer);
   });

  document.onclick = jsddm_close;

 } ) ( jQuery );
但是我现在得到了$(this).find不是“jsddm_close();”行上的函数-感谢您的帮助,我相信它很简单。全文如下:

<script type="text/javascript">
    var timeout         = 500;
    var closetimer      = 0;
    var ddmenuitem      = 0;

    function jsddm_open()
    {   jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').eq(0).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;}}

    ( function($) {

            $(document).ready( function() { 

            $('#menu-main-nav > li').bind('mouseover', jsddm_open);
    $('#menu-main-nav > li').bind('mouseout',  jsddm_timer);

    });

    document.onclick = jsddm_close;

    } ) ( jQuery ); 

</script>

var超时=500;
var closetimer=0;
var ddmenuitem=0;
函数jsddm_open()
{jsddm_canceltimer();
jsddm_close();
ddmenuitem=$(this.find('ul').eq(0.css('visibility','visible');}
函数jsddm_close()
{if(ddmenuitem)ddmenuitem.css('visibility','hidden');}
函数jsddm_timer()
{closetimer=window.setTimeout(jsddm_close,timeout);}
函数jsddm_canceltimer()
{if(关闭计时器)
{window.clearTimeout(closetimer);
closetimer=null;}}
(函数($){
$(文档).ready(函数(){
$('#menu main nav>li').bind('mouseover',jsddm_open);
$('#menu main nav>li').bind('mouseout',jsddm_计时器);
});
document.onclick=jsddm\u close;
})(jQuery);

你应该在一个匿名函数中包装e'erbody

<script type="text/javascript">

(function($) {

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

    function jsddm_open() {   
        jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').eq(0).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() { 
        $('#menu-main-nav > li').bind('mouseover', jsddm_open);
        $('#menu-main-nav > li').bind('mouseout',  jsddm_timer);
    });

    document.onclick = jsddm_close;

})(jQuery)

</script>

(函数($){
var超时=500;
var closetimer=0;
var ddmenuitem=0;
函数jsddm_open(){
jsddm_canceltimer();
jsddm_close();
ddmenuitem=$(this).find('ul').eq(0).css('visibility','visible');
}
函数jsddm_close(){
if(ddmenuitem)ddmenuitem.css(‘可见性’、‘隐藏’);
}
函数jsddm_timer(){
closetimer=window.setTimeout(jsddm_close,timeout);
}
函数jsddm_canceltimer(){
如果(关闭计时器){
清除超时(关闭计时器);
closetimer=null;
}
}
$(文档).ready(函数(){
$('#menu main nav>li').bind('mouseover',jsddm_open);
$('#menu main nav>li').bind('mouseout',jsddm_计时器);
});
document.onclick=jsddm\u close;
})(jQuery)

你应该在一个匿名函数中包装e'erbody

<script type="text/javascript">

(function($) {

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

    function jsddm_open() {   
        jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').eq(0).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() { 
        $('#menu-main-nav > li').bind('mouseover', jsddm_open);
        $('#menu-main-nav > li').bind('mouseout',  jsddm_timer);
    });

    document.onclick = jsddm_close;

})(jQuery)

</script>

(函数($){
var超时=500;
var closetimer=0;
var ddmenuitem=0;
函数jsddm_open(){
jsddm_canceltimer();
jsddm_close();
ddmenuitem=$(this).find('ul').eq(0).css('visibility','visible');
}
函数jsddm_close(){
if(ddmenuitem)ddmenuitem.css(‘可见性’、‘隐藏’);
}
函数jsddm_timer(){
closetimer=window.setTimeout(jsddm_close,timeout);
}
函数jsddm_canceltimer(){
如果(关闭计时器){
清除超时(关闭计时器);
closetimer=null;
}
}
$(文档).ready(函数(){
$('#menu main nav>li').bind('mouseover',jsddm_open);
$('#menu main nav>li').bind('mouseout',jsddm_计时器);
});
document.onclick=jsddm\u close;
})(jQuery)

为什么不将所有javascript封装到该匿名函数中?这样,您就可以通过
$
保证对
jQuery
的引用,而且不会碰撞全局对象。您在Firebug中看到了什么?同样的错误?有一个问题是js代码被jQuery弄乱了。更改
document.onclick=jsddm\u关闭
$(文档)。单击(函数(){jsddm_close(this);})
并在
jsddm_close
中接收
这个
作为参数,但是@kradmin虽然我同意你的观点,但是“jsddm_close”函数本身并不是指“$(this)”…我仍在试图找到第74行,为什么你不将所有的javascript封装到那个匿名函数中呢?这样,您就可以通过
$
保证对
jQuery
的引用,而且不会碰撞全局对象。您在Firebug中看到了什么?同样的错误?有一个问题是js代码被jQuery弄乱了。更改
document.onclick=jsddm\u关闭
$(文档)。单击(函数(){jsddm_close(this);})
并在
jsddm_close
中接收
这个
作为参数,但是@kradmin虽然我同意你的观点,“jsddm_close”函数本身并不是指“$(this)”…我仍在试图找到第74行,这很好Chris,谢谢你-原谅n00b问题,但为什么我的解决方案不正确?这很好Chris,谢谢-请原谅n00b问题,但为什么我的解决方案不正确?