Событие jquery touchend для всего документа, кроме div, по которому щелкают
Я хотел показать / скрыть элемент по нажатию div в ipad/ мобильных устройствах. Я использовал touchstart и touchend события. Но я хочу остановить событие touchend для элемента div ".view-list", чтобы ".viewlist-popup" не скрывался сразу.
<div class="view-list">VIEW LIST
<div class="viewlist-popup">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</div>
$('.view-list').bind('touchstart', function() {
$(this).find('.viewlist-popup').show();
});
$(document).bind('touchend', function() {
$('.view-list').find('.viewlist-popup').hide();
});
1 ответ
Вы должны отфильтровать его по цели события:
$(document).bind('touchend', function(e) {
if($(e.target).hasClass('view-list')) return;
$('.view-list').find('.viewlist-popup').hide();
});
И если вы не хотите скрывать это при прикосновении к любому из его потомков:
if($(e.target).closest('.view-list').length) return;