0

这是我的 jsFiddle:http: //jsfiddle.net/markrummel/vPcrX/

此代码适用于 Chrome、Firefox、Safari 和 IE 10,但不适用于 IE 7、8 或 9。

我已经通过 IE 10 的开发者工具对其进行了测试,当我第一次在 IE 7、8 或 9 中打开它时它不起作用。但是,在我打开开发者工具后,它开始在 IE 7、8 和 9 中工作。我还通过Microsoft 的 Virtual PC在较旧的 IE 浏览器中进行了测试在较旧的 IE 浏览器中进行了测试,并且旋转器无法正常工作。

你可以在这里看到整个页面:http: //melaniejaderummel.com。但是,我认为这个问题与 jQuery 代码无关,因为它在精简的jsFiddle中不起作用。

您能提供的任何帮助将不胜感激!

我的 HTML:

<div id="testimonials">
    <p data-testimonial="1">“Testimonial Content” – Julie S.</p>
    <p data-testimonial="2">“Testimonial Content” – Melissa D.</p>
    <!--repeated; 10 total testimonials-->
</div>

相关的CSS:

#testimonials p {display:none;}

最后,这是我的 javascript:

$(document).ready(function () {

    var shownTestimonials = [];

    displayTestimonials(shownTestimonials);

    function displayTestimonials(shownTestimonials) {
        var totalTestimonials = 10;

        console.log(shownTestimonials);
        //console.log(shownTestimonials.length);

        if (shownTestimonials.length == 0 || shownTestimonials.length == totalTestimonials) {
            var shownTestimonials = [];
        }

        function getNewTestimonial(totalTestimonials) {
            return Math.floor(Math.random() * totalTestimonials) + 1; //random number between 1 and 10
        }

        var currentTestimonial = $('#testimonials p.visible').attr('data-testimonial');
        var newTestimonial = getNewTestimonial(totalTestimonials);

        console.log(currentTestimonial);

        if (currentTestimonial == null) {
            $('#testimonials p[data-testimonial="' + newTestimonial + '"]').addClass('visible').fadeIn(700);
            shownTestimonials.push(newTestimonial);
        } else {

            var newExists = 1;

            while (newExists > -1) {
                var newTestimonial = getNewTestimonial(totalTestimonials);
                var newExists = $.inArray(newTestimonial, shownTestimonials)
                console.log(newExists);
            }

            $('#testimonials p[data-testimonial="' + currentTestimonial + '"]').removeClass('visible').fadeOut(600);
            setTimeout(function () {
                $('#testimonials p[data-testimonial="' + newTestimonial + '"]').addClass('visible').fadeIn(700);
                shownTestimonials.push(newTestimonial);
            }, 700);
        } //end else

        setTimeout(function () {
            displayTestimonials(shownTestimonials);
        }, 12000);
    } //end displayTestimonials();

}); //end $(document).ready
4

1 回答 1

1

删除或注释掉这些console.log陈述。除非控制台打开(在具有开发工具的 IE 版本中),否则 IE 会阻塞它们。

根据这篇 MSDN 文章

请记住,除非您打开了开发人员工具,否则您将无法看到输出。您可以在“控制台”或“脚本”选项卡上看到控制台输出。使用控制台进行调试时要小心。如果您在迁移到生产环境时在代码中留下对控制台对象的调用,并且没有显示开发人员工具,您将收到一条错误消息,告诉您控制台未定义。为避免出现错误消息,您要么需要从代码中删除所有控制台方法调用,要么需要添加检查以确保控制台存在,然后再调用任何方法。

于 2013-06-09T01:49:02.760 回答