-1

我有一个类似的代码

$(document).ready(function(){
    $(function () {
        window.setTimeout(function () {
            if( getInternetExplorerVersion() != -1){
                //do not friendly IE stuff
                            ie_browsers();          
            }else{
                other_browsers();
            }

                        setInterval(other_browsers, 32000);
        }, 800);
    });
   ...

检测 IE 我有

function getInternetExplorerVersion(){
        var rv = -1;
        if (navigator.appName == 'Microsoft Internet Explorer'){
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.exec(ua) != null)
                 rv = parseFloat( RegExp.$1 );
        }
           return rv;
    }

我的问题是我必须在哪里放置指令setInterval(other_browsers, 32000);

我是否必须将它放在 else 语句和ie_browsers();if 中?

目的是每 32 秒执行一次功能,延迟 800 毫秒。

4

1 回答 1

3

撇开这个问题的本质不谈(我会把它留给评论)。如果我理解您的要求,您可以执行以下操作以避免setIntervalif和 中重复else

$(function () {
    window.setTimeout(function () {
        var func;
        if( getInternetExplorerVersion() != -1){
            //do not friendly IE stuff
            func = ie_browsers;
        }else{
            func = other_browsers;
        }

        // call once now
        func();

        // call repeatedly on an interval
        setInterval(func, 32000);
    }, 800);
});
于 2013-04-30T21:24:20.113 回答