Простой запрос ajax, но запускается для каждого элемента класса с использованием события .click()
. Когда он добирается до .done()
, я не могу понять, как искать элемент, который был нажат, чтобы я мог правильно удалить класс m_action
.jQuery: щелкнуть ajax, получить щелкнутый объект в done/fail?
Ниже приведен код. Я уверен, что я пропустил что-то простое, но я без проблем нашел с помощью веб-инструментов Chrome и Firefox и не могу найти дублирующий вопрос здесь на Stack.
Вкратце: , используя код ниже, как правильно удалить классэлемента с щелчком на успешном возврате ajax jQuery?
<script type="text/javascript">
jQuery("div#normal .m_action").click(function() {
jQuery.ajax({
url: "./action.php",
type: "POST",
data: { action: this.id }
}).done(function(result) {
jQuery(this).removeClass("m_action");
jQuery(this).html(result);
}).fail(function(result) {
alert("There was an error.")
});
})
</script>
Спасибо, что работали. Я понимаю, что это проблема, но, похоже, она зависит от запросов. Почему выполняется действие 'action: this.id', но ссылающееся на' this' в функции '.done()' не? Концепция jQuery/Javascript «функции - данные» все еще немного запутывает этого новичка jQuery (который начал программирование на Java). – Bing
@Bing Вы создаете объект в области функции 'click' и передаете его функции' ajax'. Посмотрите на это так, и это имеет больше смысла: http://jsbin.com/giyan/2/edit – m59