jQuery和IE,对象不支持这个属性或方法

Ada*_*dam 2 javascript jquery internet-explorer

我已经使用这段代码在网站上获得了一个下拉式菜单.它在IE以外的所有浏览器上都可以正常工作,甚至可以在IE上正常工作,除了在这一页上我得到"对象不支持此属性或方法"错误.

这是IE告诉我错误的地方,这部分是在"页眉"文件中,首先在页面的其余部分之前加载.

<script type="text/javascript"> 
$(document).ready(function(){
    $("#nav-one li").hover(
        function(){ $("ul", this).fadeIn("fast"); }, 
        function() { } 
    );

if(document.all){
    $("#nav-one li").hoverClass("sfHover");//THIS LINE IS WHERE THE ERROR IS
    };
});

$.fn.hoverClass = function(c) {
    return this.each(function(){
    $(this).hover( 
        function() { $(this).addClass(c);  },
        function() { $(this).removeClass(c); }
        );
    });
};    
</script> 
Run Code Online (Sandbox Code Playgroud)

我不认为错误在代码中,因为它工作正常,除了这个之外每个页面都没有错误,这也是唯一使用其他jQuery代码的页面.其余的jQuery代码在页面上运行正常,只有当将鼠标悬停在菜单项上时,下拉列表才能正常工作.如果有人能帮我找到答案,我将不胜感激.

谢谢,

Wil*_*ill 5

当您致电时hoverClass,尚未定义.您需要$.fn.hoverClass在代码顶部声明.

$.fn.hoverClass = function(c) {
    return this.each(function(){
    $(this).hover( 
        function() { $(this).addClass(c);  },
        function() { $(this).removeClass(c); }
        );
    });
};   
$(document).ready(function(){
    $("#nav-one li").hover(
        function(){ $("ul", this).fadeIn("fast"); }, 
        function() { } 
    );

if(document.all){
    $("#nav-one li").hoverClass("sfHover");//THIS LINE IS WHERE THE ERROR IS
    };
}); 
Run Code Online (Sandbox Code Playgroud)