Получить элемент clicked с помощью jQuery в событии?
Я использую следующий код, чтобы определить, когда нажата динамически сгенерированная кнопка.
$(document).on("click",".appDetails", function () {
alert("test");
});
Обычно, если вы только что сделали $('.appDetails').click()
, вы можете использовать $(this)
, чтобы получить элемент, на который был нажат. Как бы это сделать с приведенным выше кодом?
Например:
$(document).on("click",".appDetails", function () {
var clickedBtnID = ??????
alert('you clicked on button #' + clickedBtnID);
});
Ответы
Ответ 1
Проще, чем это может быть
Используйте $(this)
здесь тоже
$(document).on("click",".appDetails", function () {
var clickedBtnID = $(this).attr('id'); // or var clickedBtnID = this.id
alert('you clicked on button #' + clickedBtnID);
});
Ответ 2
В вашей функции отсутствует параметр события.
$(document).on("click",".appDetails", function (event) {
alert(event.target.id);
});
Ответ 3
Традиционный способ обращения с этим не очень хорошо работает с ES6. Вы можете сделать это вместо:
$('.delete').on('click', event => {
const clickedElement = $(event.target);
this.delete(clickedElement.data('id'));
});
Обратите внимание, что целевым объектом будет элемент с щелчком, который может не быть тем элементом, который вы хотите (он может быть дочерним, который получил событие). Чтобы получить фактический элемент:
$('.delete').on('click', event => {
const clickedElement = $(event.target);
const targetElement = clickedElement.closest('.delete');
this.delete(targetElement.data('id'));
});
Ответ 4
$(document).on("click",".appDetails", function () {
var clickedBtnID = $(this).attr('id'); // or var clickedBtnID = this.id
alert('you clicked on button #' + clickedBtnID);
var val_ = $(this).text();
$('p10_test',val_);
});