Как вы используете функциональность щелчка, в которой много jquery-классов?

99
11

<div class="card-block">something</div>
<div class="card-block">something</div>
<div class="card-block">something</div>
<div class="card-block">something</div>
<div class="card-block">something</div>

Итак, у меня есть что-то подобное в моем коде, мне было интересно, как добавить функцию щелчка, которая захватывает конкретный div, который был нажат?

Я думал, что это будет работать $('.card-block').on('click', function() { "do something" });

Итак, я думаю, я забыл упомянуть, что мой DOM динамически создается, и он постоянно динамически создается каждый раз, когда пользователь нажимает на кнопку или изменяет размер окна.

спросил(а) 2021-01-25T18:51:58+03:00 4 месяца, 4 недели назад
1
Решение
63

$('.card-block').on('click', function() { var div = $(this); });

Вы можете использовать это ключевое слово, чтобы получить щелчок div. Если ваш элемент добавлен динамически, используйте этот код:

$('body').on('click', '.card-block', function() { var div = $(this); });

ответил(а) 2021-01-25T18:51:58+03:00 4 месяца, 4 недели назад
46

Использовать это. Он также присоединяет событие click для dynamically loaded элементов, имеющих класс card-block.

$(document).on('click','.card-block', function() { 
var x = $(this);//It will be the appropriate div
});

ответил(а) 2021-01-25T18:51:58+03:00 4 месяца, 4 недели назад
45

Ваш код должен работать, если это не означает, что это означает, что вы привязываете событие click, когда элемент еще не существует. Попытайтесь делегировать событие телу:

$('body').on('click', '.card-block', function(e) {
var your_div = $(this);
});

ответил(а) 2021-01-25T18:51:58+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема