0

彼は、私は何時間も手がかりなしで試してきました(私はWordpressを使用しています).jQueryの何が問題なのかを知るのは非常に困難です. Windows/Mac の FF と Chrome は正常に動作し、IE は私を夢中にさせます。

私はヘッダーで使用しています:

<!DOCTYPE html>

これは、私がテストを行っている Web です。

http://newportal.no-ip.org/

これは私のJSコードです:

     jQuery(document).ready(function() {

//Menu
    jQuery("ul.menu").superfish({
            delay       : 100,
            animation   : {opacity:'show',height:'show'},
            //speed     : 10,
            autoArrows  : true, 
            dropShadows : false
        });

//Popup FancyBox
jQuery('.fancybox-media').fancybox({
        maxWidth    : 800,
        maxHeight   : 600,
        fitToView   : false,
        width       : '70%',
        height      : '70%',
        autoSize    : false,
        closeClick  : false,
        openEffect  : 'none',
        closeEffect : 'none'
    });

jQuery('.fancybox').fancybox(); 

    var thumbnails = 'a:has(img)[hrefjQuery=".jpg"]';
    jQuery(thumbnails).addClass("fancybox").attr("rel","fancybox");


jQuery(".popup").fancybox({
         'width' : '75%',
         'height' : '75%',
         'autoScale' : false,
         'transitionIn' : 'none',
         'transitionOut' : 'none',
         'type' : 'iframe'
     });

//Expand
jQuery('div.moexpander').hide();
    jQuery('a.moexpander').click(function(){
        jQuery(this).parent().next('div.moexpander').slideToggle();
        return false;
    });  

//Slideshow Destacados, Create an array of titles
    var titles = jQuery('#cycle div.item').find("h3").map(function() { return jQuery(this).text(); });
    //Add an unordered list to contain the navigation
    //Invoke the cycle plugin on #cycle
    jQuery('#cycle').before('<ul id="pager" class="sprites bannerBg"></ul>').cycle({
        //Specify options
        fx      :'fade', //Name of transition effect
        speed   : 600,
        delay   : -1200,
        pause   :   1,
        pager   : '#pager',     //Selector for element to use as pager container
        pagerAnchorBuilder: function (index) {               //Build the pager
        return '<li><a href="#">' + titles[index] + '</a></li>';
    },
    updateActivePagerLink: function(pager, currSlideIndex) {
        jQuery(pager).find('li').removeClass('active').filter('li:eq('+currSlideIndex+')').addClass('active');
    }
    });
  jQuery('#cycle').hover(function() {
  jQuery('.pause').show();
  }, function() {
        jQuery('.pause').hide();
    });


//Slideshow Voluntariado
    jQuery('#cyclePopular').after('<div id="navPopular">') 
        .cycle({ 
    fx          : 'scrollHorz',
    speed       : 'fast',
    delay   : -1200,
    pause   :   1,  
    pager       : '#navPopular'
    });

//Slideshow Avisos
    jQuery('#cycleAvisos').cycle({ 
    fx          : 'scrollHorz',
    delay   : -4000,
    pause   :   1,
    prev:    '#prev',
    next:    '#next',
    pager       : '#navAvisos',
    after: onAfter
    });
//Make Avisos's Height auto-resizing    
    function onAfter(curr, next, opts, fwd) {
        var jQueryht = jQuery(this).height();

        //set the container's height to that of the current slide
        jQuery(this).parent().animate({height: jQueryht});
    }

//Make all the block clickable  
jQuery("#link").click(function(){
     window.location=jQuery(this).find("a").attr("href");
     return false;
});         

//Add CSS to Sidebar Pages
jQuery('#sidebar-pages').find("li").before("<span class='sprites bulletR left'></span>");



// Tabs
 jQuery.fn.easytabs = function(){
 //Default Action
 jQuery(this).find(".easytabs_content").hide(); //Hide all content
 jQuery(this).find("ul.easytabs li:first").addClass("active").show(); //Activate first tab
 jQuery(this).find(".easytabs_content:first").show(); //Show first tab content
 jQuery(this).find(".easytabs_content li a").before("<span class='sprites bulletR'></span>"); //Show bullets

 //On Click Event
 jQuery("ul.easytabs li").click(function() {
 jQuery(this).parent().parent().find("ul.easytabs li").removeClass("active"); //Remove any "active" class
 jQuery(this).addClass("active"); //Add "active" class to selected tab
 jQuery(this).parent().parent().find(".easytabs_content").hide(); //Hide all tab content
 var activeTab = jQuery(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
 jQuery(activeTab).fadeIn(); //Fade in the active content
 return false;
 });
};//end function

jQuery("div[class^='easytabs']").easytabs(); //Run function on any div with class name of "easytabs"

// Search animation with IE statements
    var input = jQuery('input#s');
    var divInput = jQuery('div.input');
    var width = divInput.width();
    var outerWidth = divInput.parent().width() - (divInput.outerWidth() - width) - 28;
    var submit = jQuery('#searchSubmit');
    var txt = input.val();

    input.bind('focus', function() {
        if(input.val() === txt) {
            input.val('');
        }
        jQuery(this).animate({color: '#000'}, 300); // text color
        jQuery(this).parent().animate({
            width: outerWidth + 'px',
            backgroundColor: '#fff', // background color
            paddingRight: '43px'
        }, 300, function() {
            if(!(input.val() === '' || input.val() === txt)) {
                if(!(jQuery.browser.msie && jQuery.browser.version < 9)) {
                    submit.fadeIn(300);
                } else {
                    submit.css({display: 'block'});
                }
            }
        }).addClass('focus');
    }).bind('blur', function() {
        jQuery(this).animate({color: '#b4bdc4'}, 300); // text color
        jQuery(this).parent().animate({
            width: width + 'px',
            backgroundColor: '#e8edf1', // background color
            paddingRight: '15px'
        }, 300, function() {
            if(input.val() === '') {
                input.val(txt)
            }
        }).removeClass('focus');
        if(!(jQuery.browser.msie && jQuery.browser.version < 9)) {
            submit.fadeOut(100);
        } else {
            submit.css({display: 'none'});
        }
    }).keyup(function() {
        if(input.val() === '') {
            if(!(jQuery.browser.msie && jQuery.browser.version < 9)) {
                submit.fadeOut(300);
            } else {
                submit.css({display: 'none'});
            }
        } else {
            if(!(jQuery.browser.msie && jQuery.browser.version < 9)) {
                submit.fadeIn(300);
            } else {
                submit.css({display: 'block'});
            }
        }
    });

});

よろしくお願いします。

ひ・

4

1 に答える 1

1

IE で十分にサポートされていない (またはまったくサポートされていない) 2 つのメソッド呼び出しがあります。

  • .hover
  • .slideToggle

すべてのtoggle関数は、大まかな/一貫性のないクロスブラウザー サポートを備えています。slide特に、効果にはすべてのjQuery効果の中で最も高いオーバーヘッドがあり、遅いブラウザー(IEなど、特に古いバージョン)では明らかに明らかであるため、これを変更しようとします。

については、、 、、.hoverの組み合わせを読んで使用することをお勧めします。どれかは覚えていませんが、実際にはそのうちの 2 つの省略形ですが、サポートは大雑把です。これらのセットの 1 つは、具体的には IE の組み込み設定に基づいており、簡略化されたものではないと思います。.mouseenter.mouseleave.mousein.mouseout.hover.hover


更新 1:

あなたのフィードバックに基づいて、私がアドバイスしたいのは、.superFishとプラグインのソース コードを検索して、それらがfor を使用fancyboxしていないことを確認することです。すなわち。fadeToopacityopacity

更新 2:

あなたの.map()方法も間違っています。コードの残りの部分から、jQuery 配列ではなく、通常の JavaScript 配列を作成しようとしていることがわかります。.get()そのため、 の後に呼び出す必要があります.map()。これをさらに説明する別の投稿への回答を見つけました。

更新 3:

ばかげていないことを願っていますが、次の行に気付きました。

jQuery('div.moexpander').hide();

のクリック ハンドラを設定する直前に持っているものですjQuery('div.moexpander')。問題は、表示する別の呼び出しがどこにも表示されないことjQuery('div.moexpander')です。私が正しく、その後再び表示されなかった場合、div.moexpander要素は表示されず、ハンドラーは使用されません。私はまだあなたの症状がわからないので、これがあなたのコード/問題にとってどれほど重要かはわかりませんが、これはおそらくバグです。

更新 4:

また、デバッグ中はコードを実行し、各関数宣言をセミコロンで終了する必要があります。たとえば、次のように変更します。

function someFunct() { 
    ..... 
}

function someFunct() { 
    ..... 
};

これは JavaScript では必須ではありませんが、これがスクリプトに影響を与え、場合によってはスクリプトをクラッシュさせる状況が数多くあります。

正直なところ、なぜそうなのかは完全にはわかりませんが、これが問題になる状況に遭遇したことがあり、これらの問題のいくつかは IE にあったと思います。

更新 5:

それでも問題が解決しない場合は、fancyBox に関連する IE の読み込みの問題を扱っている jQuery フォーラムのこのスレッドを確認してください。

于 2013-04-11T16:26:14.247 に答える