У меня проблема с событиями jQuery click.
Я думаю, что решение легко, но трудно найти и правильно сформулировать на английском языке.
Итак, этот HTML-код:
...
<div id="element">
<div id="button">
</div>
</div>
...
Код CSS:
#element{
width: 100%;
height: 100%;
position: absolute;
}
#button{
width: 64px;
height: 64px;
position: absolute;
left: 50%;
}
Код jQuery:
$('body').on('click', '#element', function(){
alert('element');
});
$('body').on('click', '#button', function(){
alert('button');
});
И Исполнение:
если я нажму на #button, он покажет мне два предупреждения ("элемент") и ("кнопка"), но если я нажму на #button, я не хочу, чтобы действие click из #element.
Спасибо за любой ответ
use event.stopPropagation()
:
$('body').on('click', '#button', function(e){
e.stopPropagation();
alert('button');
});
попробуй это
$('body').on('click', '#button', function(){
alert('button');
return false;
});
Попытайтесь прекратить распространение детских событий у родителей
$('body').on('click', '#element', function(e){
e.stopPropagation();
alert('element');
});
$('body').on('click', '#button', function(e){
e.stopPropagation();
alert('button');
});
#button
является дочерним элементом #element
<div id="element">
<div id="button"></div>
</div>
Попробуйте сделать это
<div id="element">Element</div>
<div id="button">Button</div>
$('body').on('click', '#element', function(){
alert('element');
});
$('body').on('click', '#button', function(){
alert('button');
});
Используйте оператор if на клике, чтобы показать предупреждение кнопки, если это кнопка, на которую нажата кнопка, а затем показать другое предупреждение.