猿问

为什么jQuery的remove不是同步的?

页面上有一按钮如下

<button onclick="index.testClick()" >开始</button>

该页面对应的js脚本如下

var index = {

    testClick: function () {

        index.createBtn(function() {

            index.sleep(10000);

        });

    },

    sleep: function (n) {

        var start = new Date().getTime();

        while (true) {

            if(new Date().getTime() - start > n) 

                break;

        } 

    },

    createBtn: function (func) {

        var    button = $('<button>测试</button>');

        button.bind("click",function(){

            button.remove();

            func();    

        });    

        $('body').prepend(button);

    },

};

为什么点击开始按钮再点击测试按钮之后,测试按钮实际上要sleep(是在同步的$.ajax请求上注意到的,这里用循环模拟)之后才移除?把sleep包到setTimeout里才能得到想要的效果……?

慕桂英546537
浏览 527回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答