0

JavaScriptがIE8で機能しないというわずかな問題があります。Firefox、ie9およびchromeでは正常に動作しますが、ie8では動作しません。私はそれがie8で異なって動作するドキュメントの準備ができていることと関係があることを知っていますが、私は答えを見つけることができません。以下のコードを参照してください。

// JavaScript Document
/* Set Opacity to 0 for all list items that do not have class show
This prevents the gallery animation from jumping around unexpectedly.
*/
function clearShowClass() {
    setTimeout(timedInterval, 1000);
};

function timedInterval() {
    $('ul.slideshow li').not('.show').css("opacity", 0);
    clearShowClass();
};


function slideShow(speed) {

    //Call the gallery function to run the slideshow
    var timer = setInterval('gallery()', speed);

    //Pause the slideshow on mouse over content
    $('#footer, ul.slideshow').hover(

    function () {
            clearInterval(timer);
    },

    function () {
            timer = setInterval('gallery()', speed);
    });
} // End of slideshow
/* Slideshow gallery main images */

function gallery() {
    //if no IMGs have the show class, grab the first image
    var current = ($('ul.slideshow li.show') ? $('ul.slideshow li.show') : $('#ul.slideshow li.first'));

    //Get next image, if it reached the end of the slideshow, rotate it back to the first image
    var next = ((current.next().length) ? ((current.next().attr('id') == 'slideshow-caption') ? $('ul.slideshow li:first') : current.next()) : $('ul.slideshow li:first'));

    //Set the fade in effect for the next image, show class has higher z-index
    next.css({
            opacity: 4.0
    }).addClass('show').animate({
            opacity: 4.0
    }, 1000);

    // Hide the current image
    current.animate({
            opacity: 0.0
    }, 1000).removeClass('show');

    //if no thumbnails have the highlight class, grab the first thumbnail
    var currentThumb = ($('#footer li.highlight') ? $('#footer li.highlight') : $('#footer li:first'));

    var nextThumb = ($('#footer li:last').hasClass('highlight')) ? $('#footer li:nth-child(1)') : $('#footer li.highlight').next($('#footer li'));

    nextThumb.addClass('highlight');
    currentThumb.removeClass('highlight');
}; // End of Gallery
function thumbInt() {
    for (i = 1; i <= $('ul.slideshow li').length; i++) {
            $('#footer .thumbnail' + i).bind('click', {
                    iteration: i
            }, function (event) {
                    $('ul.slideshow li').removeClass('show').css("opacity", 0).add($('ul.slideshow li:nth-child(' + event.data.iteration + ')').addClass('show').css("opacity", 0.0).animate({
                            opacity: 1.0
                    }, 1000));

                    $('#footer li').removeClass('highlight').add($('#footer li:nth-child(' + event.data.iteration + ')').addClass('highlight').add($('#footer li:nth-child(' + event.data.iteration + ') img')));
            });
    };
};

var prmEnd = Sys.WebForms.PageRequestManager.getInstance();
prmEnd.add_endRequest(function () {

    thumbInt(); // Assign int to thumbnail list items
    clearShowClass(); // Prevents multiple li having .show
    $('#footer img').mouseover(

    function () {
            $(this).animate({
                    opacity: 3.7
            })
    });

    $('#footer img').mouseout(

    function () {

            $(this).animate({
                    opacity: 0.7
            })
    });

    //Set the opacity of all images to 0
    $('ul.slideshow li').css({
            opacity: 0.0
    });

    //Get the first image and display it (set it to full opacity)
    $('ul.slideshow li:first').css({
            opacity: 1.0
    }).addClass('show');

    //Get the first thumbnail and change css
    $('#footer li:first').css({
            opacity: 1.0
    }).addClass('highlight');

});



$(document).ready(function () {

    slideShow(6000);

    thumbInt(); // Assign int to thumbnail list items
    clearShowClass(); // Prevents multiple li having .show
    $('#footer img').mouseover(

    function () {

            $(this).animate({

                    opacity: 3.7

            })

    });


    $('#footer img').mouseout(

    function () {

            $(this).animate({
                    opacity: 0.7
            })
    });

});

このページの仕組みは、ユーザーがラジオボタンをクリックして_dopostbackをトリガーし、画像ギャラリーを表示することです。問題は、_dopostbackを実行すると、ドキュメント対応コードが機能しなくなることですが、これはie8でのみ発生します。Sys.WebForms.PageRequestManager.getInstance();を使用しています。更新パネルで更新後に実行するコードの場合。

ありがとう。

4

2 に答える 2

0

同じ問題がありました。IE8 の document.ready 関数でアラートが発生しません。jquery のバージョンを 1.10.1 から 1.10.2 に更新し、推奨される移行 js を含めることで問題を解決しました。

于 2013-07-23T13:21:06.570 に答える
0

私も同じ問題を抱えていました。script type="application/javascript" を type="text/javascript" に変更することで解決しました

于 2013-08-22T18:09:48.647 に答える