У меня есть div, в котором распологаются img и a. Нужно вызвать событие при клике по любой области этого элемента: и по пустой, и по тем, где расположены другие элементы. Но получилось так, что a вызывает событие раньше чем div, что делает работу события некоректной. Как сделать div единственным объектом события с помощью JQuery?
$(document).ready(function() {
$('div').on('click', event);
});
function event(ev) {
alert(ev.target.nodeName);
$(ev.target).addClass('active');
}
div {
padding: 10px;
background: yellow;
}
.active {
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<img src="" alt="image">
<br>
<a>Text</a>
</div>
Не очень понятно, что требуется в конечном итоге получить, но на сколько я понял, речь идет о "перехвате", чего конечно же нет, просто event.target
возвращает непосредственный элемент с которым происходит взаимодействие, в отличии от event.currentTarget
или this
, который в свою очередь являются ссылкой на элемент к которому привязан слушатель.
$(document).ready(function() {
$('div').on('click', event);
});
function event(ev) {
console.log('currentTarget: ', ev.currentTarget.nodeName);
console.log('this: ', this.nodeName);
console.log('target: ', ev.target.nodeName);
$(ev.currentTarget).addClass('active');
}
div {
padding: 10px;
background: yellow;
}
.active {
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<img src="" alt="image">
<br>
<a>Text</a>
</div>
$(this).addClass('active');
$(document).ready(function() {
$('div').on('click', event);
});
function event(ev) {
$(this).addClass('active'); // this !!!
}
div {
padding: 10px;
background: yellow;
}
.active {
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<img src="" alt="image">
<br>
<a>Text</a>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Понимаю вопрос может быть не слишком понятен, но постараюсь изложить суть как можно яснееЕсть блоки в которых расположен контент, они имеют...
Есть блок div с названием класса penguin, мне нужно опустить данный блок на 10% вниз от родительского блока, но свойство top не применяетсяПробовал...
при регистрации пользователя нужно проверить явдяется ли он администратором,проще сказать admin ли его логин, и если он админ,то перекидываю...
Если при создания сущности, его поля я инициализирую с помощью геттеров и сеттеров, нужен ли мне в таком случае конструктор?