【问题标题】:Javascript/jquery not working in IE8Javascript/jquery 在 IE8 中不起作用
【发布时间】:2012-09-12 10:27:41
【问题描述】:

我目前正在开发一个网站,它可以在 chrome 中正常运行,但由于某种原因 IE8 不想运行任何 javascript/jquery 脚本。即使我在页面就绪时要求警报,它也不会弹出。有点草率;我已经在实际的 index.php 文件中包含了所有的 css 和 jquery,并计划在我走得更远之后最终清理它,但我的可怕借口已经够多了。我读过一个项目后的尾随逗号会使网站在 IE 中无法正常运行,但我在代码中找不到。我还在学习,所以我确信我的代码中也有很多可以纠正的地方。对不起,它有多长。基本上发生的情况是所有隐藏的 div 只是挂出并相互重叠,并且没有任何代码执行。

<script type="text/javascript">
function video_pop(vimeo_link) {
    var vimeo_applet = "";
    $('.prompt_inner').text(vimeo_applet);
    vimeo_applet = "<div>";
    vimeo_applet += "<iframe src=\""+vimeo_link+"\" id=\"vimeo_link\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>";
    vimeo_applet += "</div>";
    $('.prompt_inner').append(vimeo_applet);
    $('.prompt_box').css("margin-left", (-(($('.prompt_inner').width())/2)));
    $('.prompt_box').css("visibility", "visible");
    $('.prompt_background').css("visibility", "visible");
    $('.prompt_box').animate({
            opacity: '1'
    }, 500);
    $('.prompt_background').animate({
            opacity: '.95'
    }, 500);
}

//MAIN MENU FUNCTIONS
function directors() {
    $('.menu').stop().fadeOut(1000).hide();
    $('#directors').stop().fadeIn(1000);
    $('#col_work').stop().fadeOut(1000).hide();
    $('#slideshow_container').stop().fadeIn(1000);
}

function contact() {
    $('.menu').stop().fadeOut(1000).hide();
    $('#main_contact').stop().fadeIn(1000);
    $('#col_work').stop().fadeOut(1000).hide();
    $('#slideshow_container').stop().fadeIn(1000);
}

function login() {
    $('.menu').stop().fadeOut(1000).hide();
    $('#login').stop().fadeIn(1000);
    $('#col_work').stop().fadeOut(1000).hide();
    $('#slideshow_container').stop().fadeIn(1000);
}

function work() {
    $('.menu').stop().fadeOut(1000).hide();
    clearInterval(slideshow_int);
    $('#slideshow_container').stop().fadeOut(1000).hide();
    $('#col_work').stop().fadeIn(1000);
}

function showmenu() {
    $('#back_button').stop().fadeOut(1000).hide();
    $('#director_set').stop().fadeOut(1000).hide();
    $('#holness').stop().hide();
    $('#pryce').stop().hide();
    $('#ntiri').stop().hide();
    $('#quiroz').stop().hide();
    $('#col_work').stop().hide();
    $('#main_menu').stop().fadeIn(1000);
    start_slideshow();
    $('#slideshow_container').stop().fadeIn(1000);
}

//DIRECTOR FILES
function director(x) {
    $('.menu').stop().fadeOut(1000);
    $('#main_menu').stop().fadeOut(1000);
    $('#col_work').stop().fadeOut(1000).hide();
    clearInterval(slideshow_int);
    $('#slideshow_container').stop().fadeOut(1000);
    $('#back_button').stop().fadeIn(1000);
    $('#director_set').stop().fadeIn(1000);

    if (x==="1") {
        $('#holness').stop().fadeIn(1000);
    }
    else if (x==="2") {
        $('#pryce').stop().fadeIn(1000);
    }
    else if (x==="3") {
        $('#ntiri').stop().fadeIn(1000);
    }
    else if (x==="4") {
        $('#quiroz').stop().fadeIn(1000);
    }
}

function start_slideshow() {
    slideshow_int = setInterval(function() { 
      $('#slides > div:first')
        .fadeOut(1000)
        .next()
        .fadeIn(1000)
        .end()
        .appendTo('#slides');
    },  5000);
}

$(document).ready(function() {
    //HIDE MENUS
    $('.menu').hide();
    $('#director_set').hide();
    $('#back_button').hide();
    $('#holness').stop().hide();
    $('#pryce').stop().hide();
    $('#ntiri').stop().hide();
    $('#quiroz').stop().hide();
    $('#col_work').stop().hide();

    video_pop("<?php 
        $query = "SELECT * FROM global WHERE id=1";
        $queryobj = mysql_query($query);
        $result = mysql_fetch_array($queryobj);
        echo $result['ovideo'] ?>");
        $('.prompt_background').click(function() {
        $('.prompt_box').animate({
            opacity: '0'
        }, 500, function() {
            $('.prompt_box').css("visibility", "hidden");
        });
        $(this).animate({
            opacity: '0'
        }, 500, function() {
            $(this).css("visibility", "hidden");
            var vimeo_applet = "";
            $('.prompt_inner').text(vimeo_applet);
        });
    });     


    //SLIDESHOW CONTROL
    $('#slides > div:gt(0)').hide();
    start_slideshow();

    //WORK MOUSEOVER
    <?php
    $queryobj = mysql_query("SELECT * FROM global_thumbnails");
    $total_global_thumbs = mysql_num_rows($queryobj);

    for ($i=1; $i<=$total_global_thumbs; $i++) {
        $queryobj = mysql_query("SELECT * FROM global_thumbnails WHERE position = {$i}"); 
        $result = mysql_fetch_array($queryobj);
        $global_still_title = strtoupper($result['title']); 
        echo "$('#global_stills img:eq(".($i-1).")').mouseover(function() {   
            $('#global_titles').text(\"{$global_still_title}\");
            });
        ";
    }
    ?>
    $('#global_stills img').mouseout(function() {
        $('#global_titles').text("");
    });
});
        </script>

【问题讨论】:

  • 您是否在 javascript 控制台中查看过错误消息?
  • IE 的控制台没有显示错误。 Chrome 显示不相关的错误(缺少图像等)
  • 你检查过 JS 是否在你的 IE 中被禁用了吗?
  • 我有,但它似乎已启用

标签: php javascript jquery html css


【解决方案1】:

尽量把所有的jQuery放在$(document).ready(function() { ... });之间

【讨论】:

    【解决方案2】:

    我认为不是这个

    for ($i=1; $i<=$total_global_thumbs; $i++)
    

    试试这个

    for (var i=1; i&lt;=$total_global_thumbs; i++)

    因为没有“var”声明,它在 IE8 中无法工作。
    曾经我也面临同样的问题。所以在我这样做之后它对我有用:)

    【讨论】:

    • 不过这是一个 php 循环。它似乎正在工作,因为所有数据库的东西都出现了
    猜你喜欢
    • 1970-01-01
    • 2011-09-03
    • 2013-06-18
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多