Javascript Internet Explorer和jQuery问题

Javascript Internet Explorer和jQuery问题,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我有一个在Firefox、Safari和Chrome中运行的脚本。无论出于什么原因,它都无法在Internet Explorer中工作。代码相当简单: <script type="text/javascript"> (function( $ ){ $.fn.tabSwap = function() { return this.each(function() { $('.current').removeClass('current')

我有一个在Firefox、Safari和Chrome中运行的脚本。无论出于什么原因,它都无法在Internet Explorer中工作。代码相当简单:

<script type="text/javascript">
(function( $ ){

    $.fn.tabSwap = function() {

        return this.each(function() {
            $('.current').removeClass('current');
            $(this).addClass('current');
        });

    };

})( jQuery );
</script>

(函数($){
$.fn.tabSwap=函数(){
返回此值。每个(函数(){
$('.current').removeClass('current');
$(this.addClass('current');
});
};
})(jQuery);
在(Roatin Marth发布)上,该代码在IE 6和IE 8中运行良好。在Internet Explorer中,此代码完全不起作用

我尝试执行以下简单代码:

<script type="text/javascript">
    $('#statistics').tabSwap();
</script>

$(“#统计数据”).tabSwap();
我得到以下错误:

对象不支持此属性或方法

index.html行:77

代码:0字符:2

URI:

我的网页的链接是:


有什么问题吗?

作为顶部列出的JS的替代品,请尝试以下方法:

<script type="text/javascript">
jQuery.fn.tabSwap = function() {

        return this.each(function() {
            $('.current').removeClass('current');
            $(this).addClass('current');
        });

};    

$(document).ready(function() {
        $('#tabTwo').tabSwap();
});
</script>

jQuery.fn.tabSwap=函数(){
返回此值。每个(函数(){
$('.current').removeClass('current');
$(this.addClass('current');
});
};    
$(文档).ready(函数(){
$('#tabTwo').tabSwap();
});

作为顶部列出的JS的替代品,请尝试以下操作:

<script type="text/javascript">
jQuery.fn.tabSwap = function() {

        return this.each(function() {
            $('.current').removeClass('current');
            $(this).addClass('current');
        });

};    

$(document).ready(function() {
        $('#tabTwo').tabSwap();
});
</script>

jQuery.fn.tabSwap=函数(){
返回此值。每个(函数(){
$('.current').removeClass('current');
$(this.addClass('current');
});
};    
$(文档).ready(函数(){
$('#tabTwo').tabSwap();
});

在IE中调用插件时,插件没有实例化——请尝试在
$()
中包装对插件的调用,以确保DOM已准备就绪(理论上,这意味着您的插件已下载并解析[因此已向jQuery注册])

因此,改变:

<script type="text/javascript">
    $('#tabTwo').tabSwap();
</script>

$('#tabTwo').tabSwap();


$(函数(){
$('#tabTwo').tabSwap();
});

在IE中调用插件时,插件没有实例化——请尝试在
$()
中包装对插件的调用,以确保DOM已准备就绪(理论上,这意味着您的插件已下载并解析[因此已向jQuery注册])

因此,改变:

<script type="text/javascript">
    $('#tabTwo').tabSwap();
</script>

$('#tabTwo').tabSwap();


$(函数(){
$('#tabTwo').tabSwap();
});
答案是由发布的,但他没有将其作为答案发布,因此我可以接受。我的站点上的问题是用于包含jQuery框架的
标记关闭不当

更具体地说,

答案是由发布的,但他没有将其作为答案发布,所以我可以接受。我的站点上的问题是用于包含jQuery框架的
标记关闭不当


更具体地说,

您不应该在
document.ready
处理程序中声明插件。当我尝试这样做时,什么都没有发生。没有错误,但标签从未交换(在IE中)。@steven_desu我更新了答案。。我可以使用chrome控制台在您的示例网站上实现这一点。它在IE中不起作用。我发现了这个问题。我只是在等他以回复形式发布,这样我就可以接受了。你不应该在
文档中声明插件。ready
处理程序。当我尝试这个时,什么都没有发生。没有错误,但标签从未交换(在IE中)。@steven_desu我更新了答案。。我可以使用chrome控制台在您的示例网站上实现这一点。它在IE中不起作用。我发现了这个问题。我只是在等他以回复的形式发布,这样我就可以接受了。效果很好:(在IE6中测试)。你在看什么?@Roatin-Huh。。。你发给我的链接在IE8中工作。我的网站肯定有更复杂的地方。我会上传我的网站,重新测试,如果仍然不起作用,我会发布一个链接。请看@Crescent解决了这个问题,谢谢=)请发布一个答案,这样我就可以将它标记为接受的答案。工作正常:(在IE6中测试)。你在看什么?@Roatin-Huh。。。你发给我的链接在IE8中工作。我的网站肯定有更复杂的地方。我将上传我的网站,重新测试,如果仍然不起作用,我将发布一个链接。请参阅@Crescent,它解决了问题,谢谢=)请作为答案发布,以便我可以将其标记为已接受的答案。此方法引发了与以前相同的错误,只引发了两次错误。此方法引发了与以前相同的错误,只引发了两次错误。