我已经在LI中使用removeFile
类进行了跨度,单击时,它应该使用jQuery $.get
删除文件,然后成功删除后,它应该{{1}包含LI。我无法弄清楚为什么这不起作用,我可以让它提醒(数据)但不分配给变量或执行fadeout
命令。
fadeOut()
答案 0 :(得分:1)
在ajax内部回调函数this
是指jqXHR对象,因此您需要在ajax调用之外将其定义为变量或将其设置为context option。
$('#files').on('click', '.removeFile', function (event) {
event.preventDefault();
var $this = $(this);
var fileUrl = $this.data('file-url');
if (confirm('Are you sure you want to delete this file?')){
$.get('process.php', {'remove-file':fileUrl}, function(data){
if(data=='true'){
$this.parent().fadeOut();
}
});
}
});
答案 1 :(得分:0)
this
中的 get()
未引用.removeFile
。 this
在xhr
的回调中引用get()
个对象。
$('#files').on('click', '.removeFile', function (event) {
event.preventDefault();
var li = $(this).parent(); //added this line
var fileUrl = $(this).data('file-url');
if (confirm('Are you sure you want to delete this file?')) {
$.get('process.php', { 'remove-file': fileUrl }, function (data) {
if (data == 'true') {
li.fadeOut(); //changed this line
}
});
}
});