Есть 10 кнопок с одинаковым классом на сайте. Нужно определить на какой из 10 кнопок я нажал.
Asked
Active
Viewed 1,549 times
2 Answers
2
Вам в обработчике приходит this, который указывает на нажатый элемент
jQuery(function($) {
$('.btn').click(function() {
const el = $(this);
console.log(el.text(), el.data("btn"));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="btn" data-btn="1">Button 1</button>
<button class="btn" data-btn="2">Button 2</button>
<button class="btn" data-btn="3">Button 3</button>
<button class="btn" data-btn="4">Button 4</button>
<button class="btn" data-btn="5">Button 5</button>
<button class="btn" data-btn="6">Button 6</button>
Anton Shchyrov
- 33,121
0
document.body.addEventListener('click', () => {
var target = event.target;
if (target.tagName != 'BUTTON') return;
target.style.background = 'black';
})
button {
width: 50px;
height: 50px;
}
<button class='ten'></button>
<button class='ten'></button>
<button class='ten'></button>
<button class='ten'></button>
<button class='ten'></button>
С помощью target
Владислав
- 1,118
-
Представляете, на странице есть сложная таблица со вложенностями, различные вспомогательные контролы, тулбары, меню, футер и еще куча всего. И в итоге у вас запрос обходит это всё. Это же жесть)) – Алексей Шиманский Jul 02 '19 at 17:40
thisбудет указывать на тот самый объект – Алексей Шиманский Jul 02 '19 at 15:39