【问题标题】:IE Jquery glitchIE Jquery 故障
【发布时间】:2012-07-07 03:13:44
【问题描述】:

在我的网站上,我使用了一些自定义构建的 jquery 插件和几个外部插件。

我遇到的问题只发生在 IE 中。在这个页面上,我有一个 KenBurns Jquery Slider 和一些 jquery 选项卡。这两个插件在 Chrome / Firefox 上都能正常工作。但是在 IE 上,当我在选项卡之间切换时(在 KenBurns 滑块下方),第一个选项卡保持打开状态并且不会隐藏。此外,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

如果您需要更多信息,请告诉我:-)

谢谢你们的帮助!!

【问题讨论】:

  • 不应该 .tabContents:first.tabContents:first-child 吗?我还注意到这个潜在的错字:$("#tabContaier ul li a").removeClass("active"); 我认为应该是 tabContainer,但我假设它是一致的或转录错误,因为你提到这在 IE 中有效......

标签: javascript jquery internet-explorer


【解决方案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
}

【讨论】:

  • 当仅使用 css 的方法不合适时,绑定调整大小事件并没有错。然后你可以绑定resize事件。请记住,在某些情况下,IE 和 webkit 浏览器会在循环中不断触发调整大小事件。那是您提供的链接是一个很好的解决方案的时候..
【解决方案2】:

我收到语法错误:

'position().left' is null or not an object 在第 128 行,jquery.themepunch.kenburn.min.js 的 char 644

此外,无论出于何种原因,resize 都会在错误发生前在 IE 中被调用 4 次。您可以在 IE 上按 F12 以访问开发人员工具,然后返回页面并刷新它以查看错误。当然点击“脚本”选项卡。

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

我应该补充一点,这些图像对我来说不会显示为缩略图,而只是作为图像的垂直列表。最后,我在 WinXP 上使用 IE8 (8.0.6001.18702IC)。

【讨论】:

  • 如果您可以获取 JS 的未缩小版本并将其发布到 JSFiddle 或其他可能有助于进一步诊断您的问题的东西。此外,如果该插件适用于更多最新(或更少最新......)版本的 jQuery,我可能会尝试看看它是否是 jQuery 中的一个罕见错误或其他东西......在 Chrome 中我仍然得到这个错误:Uncaught TypeError: Cannot read property 'length' of undefined from jquery.min.js
猜你喜欢
  • 2011-08-29
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 2012-01-29
  • 2012-01-21
相关资源
最近更新 更多