我只想替换 onclick 上的文本,加载并替换为最终文本:
$("#rebuild").click(function(){
$("#rebuild").replaceWith("in progress...").load("/rebuild").replaceWith("end !");
});
/rebuild 脚本已正确加载,但未显示最终替换...为什么?
我只想替换 onclick 上的文本,加载并替换为最终文本:
$("#rebuild").click(function(){
$("#rebuild").replaceWith("in progress...").load("/rebuild").replaceWith("end !");
});
/rebuild 脚本已正确加载,但未显示最终替换...为什么?
load
是一种异步ajax方法。这意味着您的最终replaceWith
发生在来自服务器的数据放入元素之前。链接replaceWith
在同一个元素上充其量是不稳定的,因为一旦它被替换,它就不再存在,因此下一个元素就没有了replace
如果您希望在需要使用的完整回调后替换它'load
$("#rebuild").click(function () {
$(this).html("in progress...").load("/rebuild", function () {
setTimeout(function(){
$(this).html( "end !");
}, 2000)
})
});
我用 asetTimeout
来做最后的改变,所以它不是瞬时的,或者整个负载没有意义。Also usedhtml()
而不是replaceWith
so 元素仍然存在,只有它的内容发生了变化
一旦完成,Load 也会接受函数的参数。
$("#rebuild").click(function(){
$("#rebuild").replaceWith("in progress...").load("/rebuild", function(){
$(this).replaceWith("end !");
});
});
编辑:Durn,有人打败了我:P