javascript js 完美解决 click 与 dblclick 冲突,并且不

作者:分分快三计划

假定需求dblclick时不触发click,请改写代码,但dblclick在click之后,所以这种需要click的延期是不能幸免的。

气象描述 当某些成分,如:div,同一时间绑定了click事件和dblclick事件,而那四个事件又要拍卖相对独立的事体,也便是click的时候无法触发dblclick,dblclick的时候不可能触发click。在事实上测量检验中发觉,当dblclick的时候,总会现出1次click。下文将在解决的正是其一难题。 情况剖析首先大家要清楚click和dblclick的推行种种,测量试验进程略,上边是测验结果: click:mousedown -- mouseup -- click dblclick:mousedown -- mouseup -- click -- mousedown -- mouseup -- click -- dblclick 因此看来,在dblclick触发以前,实际上是施行了2次click,而首先次的click是会屏蔽掉的。 技术方案最早想到的是或不是足以告一段落事件,但发现浏览器并未有提供相应措施,假诺本身去达成难度太大,因为单击事件所关联的一言一动必需做成是足以被cancel的才行。 于是思考用延迟,也是本身唯生龙活虎能想到的消除办法,利用setTimeout(卡塔尔(英语:State of Qatar)来拖延实现click事件的处理,然后在供给屏蔽click的时候用clearTimeout(卡塔尔(英语:State of Qatar)来终止。 具体代码 复制代码 代码如下: var test = { var clickText = 'click
'; var dblclickText = 'dblclick
'; var timer = null; return { click: function(卡塔尔(英语:State of Qatar){ clearTimeout; timer = setTimeout.append; }, dblclick: function(卡塔尔(英语:State of Qatar){ clearTimeout.append; }, init: function{ $.click.dblclick; } } }卡塔尔; html代码 复制代码 代码如下:

View Code

click
or
dblclick

marker.addEventListener("click", function(){  
    if (!window.markerClicked) {  
        window.markerClicked = true;  
    } else {  
        window.markerClicked = false;  
        return;  
    }  
    setTimeout(function () {  
        window.markerClicked = false;  
    }, 500);  

    //todo: 下面写业务代码  
}); 

三回九转小说标题里就说了,是不到家的,因为windows下,调节面板里是能够调鼠标的双击速度的,所以本人设置系统设置的双击速度极慢,则上面十三分demo就不见到效果了。所以300纳秒只是叁个大要的。 小编:胡尐睿

地点提供豆蔻梢头种思路,双击时只触发壹遍click,这种思路的帮助和益处是,click事件不会延迟施行。

图片 1图片 2

亲自去做代码:

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 脚本 冲突 之家 不完美