jQuery替换:之前&在.load函数之后

时间:2013-10-27 02:07:04

标签: jquery

我只想替换onclick上的文本,加载并替换为最终文本:

$("#rebuild").click(function(){
    $("#rebuild").replaceWith("in progress...").load("/rebuild").replaceWith("end !");
});

/ rebuild脚本已正确加载,但最终替换未显示...为什么?

2 个答案:

答案 0 :(得分:2)

load是一种异步的ajax方法。这意味着您的最终replaceWith发生在服务器的数据放入元素之前。在同一元素上链接replaceWith充其量只是shakey,因为一旦它被替换它就不再存在,因此下一个replace

没有任何内容

如果您需要在需要使用'load

的完整回调后更换它
$("#rebuild").click(function () {
    $(this).html("in progress...").load("/rebuild", function () {
        setTimeout(function(){
          $(this).html( "end !");  
        }, 2000)
    })
});

我使用setTimeout进行最终更改,因此它不是瞬时的,或者整个负载没有任何意义。也使用html()而不是replaceWith,因此元素仍然存在,只有它; s内容更改

答案 1 :(得分:1)

http://api.jquery.com/load/

Load也会在函数完成后接受它的参数。

$("#rebuild").click(function(){
    $("#rebuild").replaceWith("in progress...").load("/rebuild", function(){
        $(this).replaceWith("end !");
    });
});
编辑:Durn,有人打败了我:P