методы jQuery в $.успех обработчик AJAX не работает
У меня есть функция:
$(".delete").click(function() {
$.ajax({
url: "ServerHandler.ashx",
data: "mode=delete&item=" + $(this).attr("title"),
success: function() {
$(this).parent().parent().remove();
alert("hi");
}
});
});
У меня возникает проблема, когда я удаляю родительский объект. Она просто не исчезает. Я попытался спрятаться-не помогло.
Тревога называется нормальной.
Как решить проблему?
Извините за плохой английский.
4 ответов:
Вы находитесь внутри другой функции с другим значением
thisпо умолчанию. Передайте значениеthisиз внешней функции с помощью функции$.ajaxследующим образом:$.ajax({ context: this, ...
Потому что
thisв функции обратного вызова ajax success отличается от функции обратного вызова click. Вы можете кэшировать его в локальную переменную или использовать опцию$.ajax()'scontext.$(".delete").click(function () { var $this = $(this); $.ajax({ url: "ServerHandler.ashx", data: "mode=delete&item=" + $this.attr("title"), success: function () { $this.parent().parent().remove(); alert("hi"); } }); });
Вы пробовали установить параметр
context: this,в функции ajax?Когда срабатывает обработчик успеха, значение
thisне будет таким же, как было до руки.Смотрите здесь подробнее: http://api.jquery.com/jQuery.ajax/
Попробуйте это:
$(".delete").click(function() { $object = $(this); $.ajax({ url: "ServerHandler.ashx", data: "mode=delete&item=" + $(this).attr("title"), success: function() { $object.parent().parent().remove(); alert("hi"); } }); });
Comments