我只想替换onclick上的文本,加载并替换为最终文本:
$("#rebuild").click(function(){
$("#rebuild").replaceWith("in progress...").load("/rebuild").replaceWith("end !");
});
/ rebuild脚本已正确加载,但最终替换未显示...为什么?
答案 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)
Load也会在函数完成后接受它的参数。
$("#rebuild").click(function(){
$("#rebuild").replaceWith("in progress...").load("/rebuild", function(){
$(this).replaceWith("end !");
});
});
编辑:Durn,有人打败了我:P