我有这个代码
$.post("recommend.php",{"jid":jid,"vid":vid,"eid":eid},function(data){
if(data=="1")
{
$(this).text("Recommended");
}
else
{
$(thelink).text("Recommend");
}
});
Run Code Online (Sandbox Code Playgroud)
帖子正确执行但链接上的文字没有改变,虽然数据等于1.任何帮助......
this指当前的背景.在你的AJAX回调中,它与你的一个调用函数不同.
但是,您可以通过使用var $this = $(this);然后$this在回调内部而不是使用来简单地保留它$(this);
var $this = $(this);
$.post("recommend.php", {
"jid": jid,
"vid": vid,
"eid": eid
}, function (data) {
if (data == "1") {
$this.text("Recommended");
} else {
$(thelink).text("Recommend");
}
});
Run Code Online (Sandbox Code Playgroud)
当然,另一个名字也可以.例如,为了保留this很多人使用self或that.
另一种解决方案是使用$.ajax({ context: this, ...... }));在回调中保持相同的上下文(如果未指定,则this指向传递给的选项对象$.ajax())
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |