我对remove()
方法有问题。我不能移除$(this)
对象。我的代码是:
$(".submit_add_type").live("click", function() {
var parent = $(this).parent();
var type_value = parent.children('.type_value').val();
var type_name = parent.children('.type_name').val();
var parent2 = parent.parent();
var permission = parent2.attr('id').replace('perm_types_', '');
$.ajax({
url: "/admin/ajax/permission_type_add", type: "POST", cache: false,
data: {
permission: permission,
type_value: type_value,
type_name: type_name,
},
success: function(text) {
if(text.substr(0,2) == "ok") {
var id = text.replace('ok|', '');
$(this).remove();
parent.append('<input class="submit" type="submit" name="" value="edytuj" id="edit_type_'+ id +'" /> <input class="submit delete_type" type="submit" name="" value="usuń" id="delete_type_'+ id +'" />')
} else {
alert(text);
}
}
});
});
当我改变$(this).remove();
对$(".submit_add_type").remove();
它工作完美。会出什么问题呢?
问题是,这个submit_add_type
类可以有其他对象,我只想删除一个特定的
进入success
函数后,$(this)
成为text
参数。把它改成:
$(".submit_add_type").live("click", function() {
var _this = $(this);
...
$(_this).remove();
...
您的问题是this
的值在$.ajax
回调中发生了变化。您需要将this
保存为变量,然后在回调中使用它。
var that = this;
$.ajax({
...
success: function(){
$(that).remove();
}
});
你可能会有一些其他问题,当我在jsFiddle中尝试它时,它工作得很好:http://jsfiddle.net/uLVR5/
看起来在。remove()调用之前发生了一些事情,这是一个相当大的数量吗?
"这个"参照对象"{url:"……",数据:"……"}"所以在你放它的地方放"$(this).remove()"是没有意义的。
使用:
$(".submit_add_type").live("click", function() {
var elem= $(this), parent = elem.parent();
var type_value = parent.children('.type_value').val();
var type_name = parent.children('.type_name').val();
var parent2 = parent.parent();
var permission = parent2.attr('id').replace('perm_types_', '');
$.ajax({
url: "/admin/ajax/permission_type_add", type: "POST", cache: false,
data: {
permission: permission,
type_value: type_value,
type_name: type_name,
},
success: function(text) {
if(text.substr(0,2) == "ok") {
var id = text.replace('ok|', '');
elem.remove();
parent.append('<input class="submit" type="submit" name="" value="edytuj" id="edit_type_'+ id +'" /> <input class="submit delete_type" type="submit" name="" value="usuń" id="delete_type_'+ id +'" />')
} else {
alert(text);
}
}
});
});