安卓调用我js的方法,里面的settimeout不执行

安卓调用我js的方法,里面的settimeout不起作用,是为什么呢

        function shareSuccesshide(){
            $("#shareSuccess").hide();
        }

        function shareFailurehide(){
            $("#shareFailure").hide()
        }

        function callback(data) {
            if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {  
                if(data === 1){
                    $("#shareSuccess").show();
                    setTimeout(function(){
                        $("#shareSuccess").hide();
                    },2000);
                }else if(data === 0){
                    $("#shareFailure").show();
                    setTimeout(function(){
                        $("#shareFailure").hide()
                    },2000);
                }    
            }else if (browser.versions.android) { 
                if(data === 1){
                //我就是根据参数显示一下提示,然后再隐藏提示,现在不执行setTimeout
                    $("#shareSuccess").show();
                    setTimeout("shareSuccesshide();",2000);
                }else if(data === 0){
                    $("#shareFailure").show();
                    setTimeout("shareFailurehide();",2000);
                }    
            }  
        }
阅读 3.1k
3 个回答

setTimeout中应该是个function,你加上引号不就成了个字符串了吗,怎么执行

看代码没看出什么问题,所以我猜下:

  1. android相关的分支代码没有执行,可以console.log看看有没有执行
  2. task queue中,有未完成的task,阻塞了后续task的执行(setTimeout中的回调函数会做为task放到task queue中等待执行,如果queue中有其它先入队的task在执行,那么setTimeout即使过了2s,也不一定会执行)

setTimeout(shareSuccesshide,2000);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题