2 wild84 wild84 于 2017.09.07 09:27 提问

javascript在火狐浏览器起作用而在欧朋浏览器下不起作用

在火狐浏览器下能正常每3秒滚动一次,而在欧朋浏览器下只滚动一次就停止了,
也没有报错误.请大神帮忙看下是哪个地方不兼容?
代码如下:

 // JavaScript Document
/*首页滚动显示*/
(function($){
    $.fn.myScroll = function(options) {
        var scroll=$(".scrolldiv");

        function marquee(obj, step) {
            obj.animate({
                marginTop:'-'+step+'px'
            });
        }
        function replace(obj,step){
            obj.find(".person").slice(0,2).appendTo($(".scrolldiv"));
            obj.find(".person").splice(0,2);
            obj.css("margin-top","0px");
        }
        var s = Math.abs(parseInt(scroll.css("margin-top")));
        var step=($(".person").innerHeight()+parseInt($(".person").css("margin-top")))+1;
        if(s>=step){
            replace(scroll,step);
        }else{
            marquee(scroll,step);
        }
    }
})(jQuery);
/* 滚动调用 */
$(function(){
    var scroll=setInterval("$('.myscroll').myScroll()",3000);
});

3个回答

sunny_desmond
sunny_desmond   2017.09.07 13:24
已采纳

/* 滚动调用 */
setInterval("$('.myscroll').myScroll()",3000);
直接运行这个试试,,还有看一下你的jq版本是多少。。。

sunny_desmond
sunny_desmond 回复wild84: 如果非要纠结于函数名的话,可以给他套一个function ,然后执行掉它就行了,就像这样(function go(){setInterval("$('.myscroll').myScroll()",3000);})()
2 个月之前 回复
wild84
wild84 直接运行这个可以,如果没有函数名,我想清楚这个计时器怎么办?
2 个月之前 回复
devmiao
devmiao   Ds   Rxr 2017.09.07 09:32
wild84
wild84 姐,你的回答都不错,不过一楼和三楼的比较能解决我的问题,我会继续关注你的,姐
2 个月之前 回复
qq_35728177
qq_35728177   Ds   Rxr 2017.09.07 09:32

F12查看下控制台是否有信息输出 JQ本身已经考虑到浏览器兼容的问题,所以你的问题 应该是JQ对象的方法,而是你使用JQ产生或转换过的DOM对象的方法时碰到的。DOM对象的方法原本就不属于JQ的范畴,和JQ没关系。那你只需要多看看这方面的知识就可以了。

wild84
wild84 用3楼的方法可以.但是如果想消除这个计时器应该怎么做呢?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片