$(document).ready(function() {
$(".delete_user_button").click(function(){
var username_to_delete = $(this).attr('rel');
$.ajax({
type:"POST",
url:"/delete/",
data:{'username_to_delete':username_to_delete},
beforeSend:function() {
$(this).val("Removing...");
},
success:function(html){
$("div.delete_div[rel=" + username_to_delete + "]").remove();
}
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
为什么$(this).val()不起作用?我正在尝试在用户单击删除时更改按钮的文本.
Phi*_*ert 10
在事件处理程序(beforeSend)中,this引用用于ajax调用的XMLHttpRequest对象,而不是this单击事件处理程序的原始对象.你应该首先在变量中"捕获"它:
$(document).ready(function() {
$(".delete_user_button").click(function(){
var element = $(this);
var username_to_delete = element.attr('rel');
$.ajax({
type:"POST",
url:"/delete/",
data:{'username_to_delete':username_to_delete},
beforeSend:function() {
element.val("Removing...");
},
success:function(html){
$("div.delete_div[rel=" + username_to_delete + "]").remove();
}
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
这种机制称为"闭包".有关此问题的有趣解释,请查看此链接:
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |