我制作了这个javascript方法,我在网上发现的现有脚本中进行了更改,该脚本应该旋转显示无限数量的'.testimonial'
div。该脚本在chrome和firefox中运行良好,但不能在Internet Explorer中编译,除非您使用f12开始调试脚本。 有没有更好的方法来编写这个脚本?我已经在网上寻找想法,但却找不到任何东西。我想问题是console.log(testimonialCount);
语句,但不确定是否有更好的方法来编写它。任何帮助将不胜感激。感谢。
//rotate testimonials script
jQuery('.testimonial').hide();
var testimonialCount = $('.testimonial').length;
console.log(testimonialCount );
var currentItem = 0;
var timeout;
timeout = window.setTimeout((function(){switchDiv();}));
switchDiv = function() {
if (currentItem == testimonialCount - 1) {
jQuery('.testimonial').eq(testimonialCount - 1).hide();
currentItem = 0;
jQuery('.testimonial').eq(0).fadeIn();
timeout = window.setTimeout((function(){switchDiv();}),7000);
}
else {
jQuery('.testimonial').eq(currentItem).hide();
currentItem = currentItem + 1;
jQuery('.testimonial').eq(currentItem).fadeIn();
timeout = window.setTimeout((function(){switchDiv();}),7000);
}
}
答案 0 :(得分:3)
当IE开发人员工具未打开时,没有console
个对象
因此,调用console.log()
会引发错误。
为防止这种情况发生,您可以检查if ('console' in window)
并创建自己的虚拟控制台(或者不记录任何内容),如果不是这样的话。
答案 1 :(得分:2)
一些注意事项:
将其添加到脚本的最顶层:
window.console = console || { 'log' : function(){} };
如果不是,则定义window.console
。除了避免错误之外什么都不做。
接下来,在你的超时函数周围取出括号:
timeout = window.setTimeout(function(){ switchDiv(); },7000);
......或者只是进一步简化:
timeout = window.setTimeout(switchDiv,7000);
我在这里很挑剔,但是:
currentItem = currentItem + 1;
与currentItem++;
另一个挑剔的事物window.setTimeout
与setTimeout
相同。