如何在 Javascript 中处理同一 dom 上的 click 和 dblclick 事件绑定
How to deal with click and dblclick event bind on same dom in Javascript
我想在同一DOM
上绑定点击和dblclick事件,但dblclick始终处于活动状态的点击事件。如何做到两个事件互不影响!
如果你使用 jquery,你可以扩展 jquery 插件。使用 javascript 的非阻塞功能和回调功能来处理这个问题。你可以试试这个插件:https://github.com/sgyyz/jquery-oneordoubleclick 适用于你的jquery模块。
$target_node.oneordoubleclick({oneclick: function(){
console.log('you have click this node.');
}, dbclick: function() {
console.log('you have double click this node.');
}
});
等待通过
setTimeout
少量响应点击,如果您看到双击,请不要执行点击操作。不幸的是,时机非常棘手——太少了,你在不应该的时候得到点击,太多,点击真的很滞后。
const div = document.getElementById("the-div");
let clickTimer = 0;
div.addEventListener(
"click",
function () {
clearTimeout(clickTimer);
clickTimer = setTimeout(function () {
console.log("clicked");
clickTimer = 0;
}, 250);
},
false
);
div.addEventListener(
"dblclick",
function () {
clearTimeout(clickTimer);
console.log("double-clicked");
},
false
);
#the-div {
user-select: none;
}
<div id="the-div">Click and/or double-click me</div>
这是一个使用 setTimeout
的演示,您可以分别处理click
和dblclick
事件。使用 bool
变量,您可以决定它是单击还是双击,并相应地创建处理程序。
.HTML:
<div>Bingo</div>
.CSS:
div{
width : 100px;
height : 100px;
background-color: blue;
}
javaScript :
var div = document.getElementsByTagName("div")[0];
var isSingleClick = true;
div.onclick = function(){
setTimeout(function(){
if(isSingleClick){
console.log("Click");
}
}, 500);
};
div.ondblclick = function(){
console.log("DBLClick");
isSingleClick = false;
setTimeout(function(){
isSingleClick = true;
}, 500);
};
js小提琴
相关文章:
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 现代网络爬虫是使用 click 事件还是直接导航到锚标记上的 href
- SVG 对象部分上的 JQuery click() 不一致
- jQuery:更改CLick上的输入值
- 对于JQM中的外部链接,动态添加的链接上的触发器('click')不会传播
- 我可以't对jquery上的click事件使用off函数
- 支持输入上的 click()
- AngularJS ng-click不调用作用域上的函数
- 如何在 Javascript 中处理同一 dom 上的 click 和 dblclick 事件绑定
- 单击在jquery.click上运行的函数
- ng-click上的Angularjs-error:Args为空
- 如何使用javascript/jquery识别html网页上的ctrl +click
- 为什么选择选项上的 .click() 只适用于火狐浏览器
- 上的 jquery click() 事件,ID 具有特定的前缀,不会触发 alert() 函数
- NG-CLICK中的多个函数仅在函数上触发一次
- 从iframe更改按钮click上的jquery当前选项卡
- 获取click上的任何元素tagName
- HTMLElement.click()上的复选框在firefox中不起作用
- 如何调用绑定在ng-click上的Angular方法?
- 替换.click()上的按钮