javascript - 如何防止在“dblclick”事件之前触发“click”事件
问题描述
我必须处理两个事件,即“click”和“dblclick”,但 click 事件总是在 dblclick 事件之前触发,并且不让 dblclick 事件执行。如何使事件正确执行“点击”和“dblclick”
google.maps.event.addListener(map, 'dblclick', function(event) {
polygon(map, event.latLng)
});
google.maps.event.addListener(map, 'click', function(event) {
click_events(map, event.latLng)
});
解决方案
使用 setTimeout 并维护超时对象,以便您可以在双击时清除它
var timeoutObj;
var timeoutThreshhold = ...; //number of milliseconds to wait for double click
google.maps.event.addListener(map, 'dblclick', function(event) {
if (timeoutObj) {
clear timeoutObj;
}
polygon(map, event.latLng);
});
google.maps.event.addListener(map, 'click', function(event) {
timeoutObj = setTimeout(function() {
timeoutObj = null;
click_events(map, event.latLng);
}, timeoutThreadhold);
});
推荐阅读
- fonts - 针对特定文本格式的 Word/Office 365 可自定义键盘快捷键
- c# - 如何在 Net 核心控制器中制作不可变常量对象的静态单例副本?
- python - 有没有办法限制捕获的击键数量?
- javascript - 尝试通过获取请求发送值,获取值但它不发送 html 页面作为响应
- java - 有没有一种方法,例如使用 @JsonFilter 来仅打印 HashMap 的值?
- node.js - Import fs in TypeScript
- swiftui - SwiftUI 视图中的数据数组在从 UIViewController 返回时不会刷新
- docker - Docker 上的 FileBeat 没有读取或推送我的日志文件,也没有打印任何错误
- html - 为什么我的 DIV 重叠文本和另一个 DIV?
- android - 有android NDK linter吗?