Я столкнулся с очень туманной ошибкой, выполняя некоторые простые манипуляции с DQ jQuery.
Линией, вызвавшей ошибку, является следующее:
$(this).closest('tr').remove();
Ошибка, указанная в заголовке, следующая:
Uncaught TypeError: невозможно вызвать метод 'toLowerCase' из undefined
в файле: jquery-1.6.2.js
.
Я уже пробовал с jQuery 1.6.3 и jQuery 1.5.1, но ничего не изменилось. Я все еще продолжаю получать ошибку.
Приведенная выше строка привязана к кнопке, которая при щелчке отправляет запрос AJAX POST, а затем при успешном удалении ее удаляет <tr>
. Я уже пробовал другой способ:
$(this).parent().parent().remove()
, но, к моему удивлению, это ничего не делало.
Я использую Chrome, если это имеет значение, но я получаю ту же ошибку в FF.
EDIT:
Это мой код:
$(".remove").live('click', function(e) {
var str = $(this).attr('id').match(/\[(.*?)\]\[(.*?)\]/);
var type = str[1];
var id = str[2];
// IF I PUT THE remove() HERE, IT WORKS.
$.ajax({
type: 'POST',
url: '/admin/ajax_remove_event_detail',
data: {type: type, id: id},
success:function(res) {
if(res)
{
$(this).closest('tr').remove();
// this gives me an error
}
else
{
// error handling
}
}
});
e.preventDefault();
});
Если я выложу remove() за пределами if, то он работает. Почему он не будет работать, если он внутри вызова ajax/если? Не имеет смысла для меня?: (
Любая помощь здесь? Спасибо заранее.