Я создаю кнопку, которая, когда клики что-то делают с Ajax на сервере, и когда вернется с сервера цвет кнопки, и его текст изменится (что-то вроде +1 добавить друга в facebook) здесь мой код в .js
:Ошибка JQuery Ajax при успешном обратном вызове
$(".blue").on("click", function(){
var firstName = $(this).prev().prev().text();
var lastName = $(this).prev().text();
$(this).text("Add Friend...");
var data={
firstName: firstName,
lastName: lastName
};
$.ajax({
url: '/ajax/friendRequest',
data: data,
dataType: 'json',
success:function(){
alert(123);
$(this).removeClass("glass blue");
$(this).addClass("greenStatic");
$(this).text("Request sent");
}
});
});
каждая вещь в порядке и запрос будет успешно изменить базу данных, но когда это возвращение к обратному вызову я вижу только alert(123);
в браузере и 3 ниже линий не запускать и мой хром инструменты разработчика исключают typeError
Я ищу SO и изменяю $
знаком jQuery
, но все же у меня такая же проблема
благодарит это work.but почему? – mojibuntu
@mojibuntu yep, '$ (this)' ссылаться на объект jQuery, использовать '$ (". Blue ")' again – vladkras
Поскольку '$ (this)' не ссылается на элемент, вызвавший событие, я уже упоминал в ответе, [прочитайте это] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this). –