2012-07-06 129 views
1

在我的网站我使用一些定制的jQuery插件和一些外部因素的。IE jQuery的毛刺

我遇到的问题只发生在IE中。在这个页面上,我有一个KenBurns Jquery Slider和一些jQuery选项卡。这两个插件在Chrome/Firefox上都能正常工作。然而,在IE中,当我在选项卡之间切换(在KenBurns Slider下面)时,第一个选项卡保持打开状态并且不会隐藏。 Ken Burns Slider也重新加载或似乎重新加载。

有谁知道为什么会发生这种情况或愿意看看?

页:http://devsite80.clickdealer.co.uk/used-land-rover-range-rover-364746

我的标签代码:

(function($) { 

jQuery(document).ready(function() { 


// Generate Tabs 
$(".tabContents").hide(); 
    $(".tabContents:first").show(); 

    $("#tabContaier ul li a").click(function(e){ 

     e.preventDefault(); 

     var activeTab = $(this).attr("href"); 
     $("#tabContaier ul li a").removeClass("active"); 
     $(this).addClass("active"); 
     $(".tabContents").hide(); 
     $(activeTab).fadeIn(); 
    }); 

// Fix Tabs for Mobile 
$(window).resize(function(){ 
    console.log('resize called'); 
    var width = $(window).width(); 
    if(width <= 757){ 
      $('.tabContents').show(); 
    } 
    else{ 
      $(".tabContents:first").show(); 
    } 
}) 
.resize();//trigger the resize event on page load. 

}); 

}(jQuery)); 

这里是对其他插件我打电话的链接: http://devsite80.clickdealer.co.uk/js/jquery.config.js

如果您需要任何更多的信息,请让我知道:-)

谢谢你的帮助家伙!

+3

不应该'.tabContents:first'是'.tabContents:first-child'?我也注意到这个潜在的错字:''(“#tabContaier ul li a”)。removeClass(“active”);'应该是tabContainer我认为,但我假设它是一致的或者是一个转录错误,因为你提到这个工程除了在IE浏览器... – Kasapo 2012-07-06 16:17:51

回答

0

我得到一个语法错误:

'position().left' is null or not an object线128,CHAR jquery.themepunch.kenburn.min.js 644

而且,不管出于什么原因调整大小是越来越之前,在IE中称为4倍错误。您可以在IE上点击F12以找到开发人员工具,然后返回到页面并刷新它以查看错误。当然点击“脚本”标签。

仅供参考,刷新工具控制台只是清除缓存,但我不认为它会重新加载页面,你实际上必须重新选择IE窗口。

我应该补充说,图像不会以缩略图的形式显示给我,就像图像的垂直列表一样。最后,我在WinXP上使用IE8(8.0.6001.18702IC)。

+0

如果你能得到JS的unminifed版本,并将其发布到的jsfiddle或东西,可能有助于进一步诊断您的问题。另外,如果插件作品有更先进的日期(以下跟上时代的...)的jQuery的版本,我可能会尝试,看看它在jQuery的一个罕见的错误或东西...在Chrome我仍然得到这个错误:'遗漏的类型错误:无法从jquery.min读undefined'的特性“长度”。js – Kasapo 2012-07-06 16:32:56

1

你的问题是你绑定到window.resize。在IE中,当页面上的任何元素大小调整触发的window.resize事件。

文章听到更多的讨论是: window.resize event firing in Internet Explorer

我不会建议对调整大小结合。而不是使用隐藏和显示,我会将这个功能移到你的CSS,并使用jQuery来切换你的类。这也可以让你设置CSS媒体查询来完成你所需要的:

@media screen and (min-width: 757px) { 
    #YOUR CONDITIONAL CSS HERE 
} 
+0

当仅使用css方法不合适时,绑定调整大小事件没有任何问题。然后你可以绑定resize事件。请记住,在某些情况下,IE和webkit浏览器将继续触发调整大小事件的循环。那当你提供的链接是一个很好的解决方案.. – 2013-03-04 20:19:35