【发布时间】:2019-05-21 02:14:48
【问题描述】:
我正在使用 Cordova 构建一个应用程序,并且与许多应用程序一样,我正在尝试实现在按住某个元素后发生的长按事件。
我正在使用https://github.com/john-doherty/long-press-event,它会在按住一个元素 1.5 秒后触发一个名为“长按”的自定义事件。
我有一个元素我想同时放置一个“点击”监听器和一个“长按”监听器,类似于许多移动应用程序,例如照片库或电子邮件,它们在点击和长按之间的反应不同-新闻发布会。
长按事件确实会触发,但“Click”事件也每次都会触发,我不知道应该如何或何时尝试阻止它触发。我已经尝试了stopDefault() 和stopPropogation() 的几个位置,但均无济于事。
带有监听器的 HTML 是
<div class="grid-col grid-col--1">
<div class="grid-item bd bdrs-4 bdw-1 bdc-grey-400">
<img class="portfolio-img lightbox-img" src="https://glamsquad.sgp1.cdn.digitaloceanspaces.com/GlamSquad/artist/1/portfolio/2019-05-16-06-07-370bc89b7bfe9769740c1f68f7e103340a94aaaeaa5d6f139f841e3c022ad309de.png">
</div>
<div class="grid-item bd bdrs-4 bdw-1 bdc-grey-400">
<img class="portfolio-img lightbox-img" src="https://glamsquad.sgp1.cdn.digitaloceanspaces.com/GlamSquad/artist/1/portfolio/2019-05-16-06-07-38d8d03cc6edef043d25e9099b883cd235c823a267ab03b9e740934f06c4f87e2f.png">
</div>
</div>
当 JS 代码正在侦听对 lightbox-img 的点击或对投资组合图像的长按时
$(document).on('long-press', '.portfolio-img', (e) => {
e.preventDefault();
e.stopPropagation();
console.log('Portfolio long press event.');
});
$(document).on('click', '.lightbox-img', imageClick);
是否有任何实际的方法来触发长按事件但让它取消或停止点击事件的发生?
【问题讨论】:
-
我认为下面的@archer 回答有效。您可以通过在这两个功能中添加控制台日志来尝试了解点击调用时间的差异。长按事件会有时间延迟。
标签: javascript cordova dom dom-events jquery-events