【问题标题】:jQuery causes page to break in IE7, Works fine in all other browsersjQuery 导致页面在 IE7 中中断,在所有其他浏览器中都可以正常工作
【发布时间】:2011-06-23 18:28:06
【问题描述】:

我正在开发一个网站,我们已准备好上线。直到我开始做 IE 编辑。由于我的 jQuery,该页面在 IE7 中损坏。这是一个带有多个插件的 wordpress 平台,但我一次禁用了一个插件,但没有成功。我将 jQuery 置于无冲突模式,但仍然没有成功。任何帮助将非常感激。我在下面包含了我的 jQuery,该网站的网址是 http://prospermodels.com。如果您不介意帮助我,我可以让您获得管理员权限等。再次感谢。

/*下面是JQUERY代码/

jQuery(document).ready(function() {
    jQuery(".heat").after("<div class='heatD' style='display: none;'>Heat Description which is available in the jQuery in the footer.</div>");
    jQuery('.heat').hover(function() {
        jQuery('.heatD').show();
        jQuery(".heatD").css("margin-bottom", 300);
        }, function() {
            jQuery('.heatD').hide();
        });
    jQuery(".cold").after("<div class='coldD' style='display: none;'>Heat Description which is available in the jQuery in the footer.</div>");
    jQuery('.cold').hover(function() {
        jQuery('.coldD').show();
        jQuery(".coldD").css("margin-bottom", 300);
    }, function() {
        jQuery('.coldD').hide();
    });
    jQuery(function(jQuery) {
        var slide = false;
        var height = jQuery('#wordd').height();
        jQuery('#footer_button').click(function() {
            var docHeight = jQuery(document).height();
            var windowHeight = jQuery(window).height();
            var scrollPos = docHeight - windowHeight + height;
            jQuery('#wordd').animate({ height: "toggle"}, 400);
            if(slide == false) {
                if(jQuery.browser.opera) { //Fix opera double scroll bug by targeting only HTML.
                    jQuery('html').animate({scrollTop: scrollPos+'px'}, 400);
                } else {
                    jQuery('html, body').animate({scrollTop: scrollPos+'px'}, 400);
                }
                slide = true;
            } else {
                slide = false;
            }
        });

    });
    jQuery(function(){
        var footerHeight = jQuery("#foot").height();
        var footerHeight2 = footerHeight + 40;
        var moree = footerHeight / 4;
        var mentrymore = footerHeight / 2;
        jQuery("#wrapper").css("margin-bottom", -moree);
    });
    jQuery("#right").stickyfloat({lockBottom: false, startOffset: 180});
    var i = 0;
    jQuery('.alignleft').each(function() {
        var me = this;
        jQuery(this).hide()
        var j = i;
        setTimeout(function() {
            jQuery(me).fadeIn(1000);
        }, i)
        i += 100
    });
    if ((jQuery("#formBuilderContact").css("display")) == "none") {
        jQuery("#formBuilderContact").css({display:"none"});
        jQuery("#formula1").click(function() {
        jQuery("#formBuilderContact").fadeIn();
        jQuery("#formula1").css({display:"none"});
        });
    }
    (function(jQuery) {
        jQuery.fn.customFadeIn = function(speed, callback) {
            jQuery(this).fadeIn(speed, function() {
            if(jQuery.browser.msie)
                jQuery(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
            });
        };
        jQuery.fn.customFadeOut = function(speed, callback) {
            jQuery(this).fadeOut(speed, function() {
            if(jQuery.browser.msie)
                jQuery(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
            });
        };
    })(jQuery);
    if(!jQuery.browser.msie){ // IE  - 2nd level Fix
        jQuery("ul.topnav").css({opacity:"0.95"});
    }
    jQuery(".nav > li > ul").css({display: "none"});
    jQuery(".nav > li > ul > li > ul").css({display: "block"});// Opera Fix
    jQuery("ul.nav li.current_page_ancestor ul.children").css({display: "block"});
    jQuery("ul.children").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav
    jQuery("ul.nav li a").hover(function() { 
        var plug = jQuery(this).parent().find("ul.children");
        plug.customFadeIn();
        jQuery(this).parent().hover(function() {

        }, function(){
            jQuery(this).parent().find("ul.children").customFadeOut(200); //When the mouse hovers out of the subnav, move it back up
        });
        //Following events are applied to the trigger (Hover events for the trigger)
        }).hover(function() {
            jQuery(this).addClass("subhover"); //On hover over, add class "subhover"
        }, function(){  //On Hover Out
            jQuery(this).removeClass("subhover"); //On hover out, remove class "subhover"
    });
    if(!(jQuery.browser.msie)) {                        
        jQuery('div.grow').divgrow({ initialHeight: 75, moreText: "+ read more", lessText: "- show less", showBrackets: false});
    }
    else {
        jQuery('div.grow').divgrow({ initialHeight: 85, moreText: "+ read more", lessText: "- show less", showBrackets: false});
    }
    if(!(jQuery.browser.msie)) {                        
        jQuery('div.grow2').divgrow({ initialHeight: 83, moreText: "+ read more", lessText: "- show less", showBrackets: false});
    }
    else {
        jQuery('div.grow2').divgrow({ initialHeight: 88, moreText: "+ read more", lessText: "- show less", showBrackets: false});
    }
    function slideSwitch() {
        var active = jQuery('#slideshow IMG.active');
        if ( active.length == 0 ) active = jQuery('#slideshow IMG:last');
        var next =  active.next().length ? active.next()
        : jQuery('#slideshow IMG:first');
        active.addClass('last-active');
        next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            active.removeClass('active last-active');
        });
        textSwitch();
    }
    var totPics = "<?= $totPics ?>";
    var activeDiv = 2;
    var text1 = "<?= $text1 ?>";
    var text2 = "<?= $text2 ?>";
    var text3 = "<?= $text3 ?>";
    var text4 = "<?= $text4 ?>";
    function textSwitch() {
        if (activeDiv <= totPics) {
            if (activeDiv == 1) {
                jQuery('#div<? echo $totPics ?>').fadeOut('slow', function() {
                jQuery('#div1').css({display: 'inline-block'})
                jQuery("#div1").fadeIn("slow");
            });
            activeDiv++;
            }
            else if (activeDiv == 2) {
                jQuery('#div1').fadeOut('slow', function() {
                    jQuery('#div2').css({display: 'inline-block'})
                    jQuery("#div2").fadeIn("slow");
                });
                activeDiv++;
            }
            else if (activeDiv == 3) {
                jQuery('#div2').fadeOut('slow', function() {
                    jQuery('#div3').css({display: 'inline-block'})
                    jQuery("#div3").fadeIn("slow");
                });
                activeDiv++;
            }
            else if (activeDiv == 4) {
                jQuery('#div3').fadeOut('slow', function() {
                    jQuery('#div4').css({display: 'inline-block'})
                    jQuery("#div4").fadeIn("slow");
                });
                activeDiv = 1;
            }
        }
        else {
            activeDiv = 1;
            textSwitch();
        }
    }
    jQuery(function() {
        if (totPics > 0) {    
            setInterval( "slideSwitch()", 5000 );
        }
    });
    /*HOVER INTENT COPY AND PASTED */
    (function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

});

【问题讨论】:

  • 什么坏了?你有错误吗?需要更多信息..
  • 打开 ||下载 f12 开发工具,看看是否有错误。
  • 页面显示,但没有一个 jquery 实际工作。导航由 jquery 控制,它显示所有链接,而不是仅显示当前页面的子页面,以及实际上不会在点击时弹出的弹出页脚。
  • 错误控制台中似乎没有错误,这让我感到困惑。而且它仅在 IE7 中,所有其他浏览器都可以正常工作。 jquery的版本重要吗?是否有可能 ie7 不支持最新版本的 jquery?
  • 我猜它不是坏的 jquery 而是坏的 dom 渲染。 IE7 以其对渲染中任何复杂事物的糟糕处理而闻名。考虑 IE7 下一个 IE6...

标签: jquery wordpress internet-explorer-7 conflict


【解决方案1】:

我有一个网站,其中 JQuery 无法在 IE7 中运行。您的代码没有任何问题,您也无法纠正这一点,除非您要让其他人创建与您相同的代码,以便他们以不同的方式进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-02
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多