Leaflet Fastclick.js会导致忽略传单.js的单击

Leaflet Fastclick.js会导致忽略传单.js的单击,leaflet,fastclick.js,Leaflet,Fastclick.js,我正在开发一个Cordova应用程序,它有一个以传单JS为核心构建的地图。地图上有标记,单击后会弹出一个信息框 我想摆脱一般站点周围链接的300毫秒延迟-基本上是在所有的锚(a标签)上。我不需要将其应用于标记,因为当前用户点击标记时没有延迟 我已经安装了fastclick()-它出色地消除了a标记的延迟-但是它在传单JS标记上产生了问题,现在有时需要两个CIC来触发 我已经尝试在JS创建的标记上添加类“needsclick”,根据fastclick文档,该类应该使fastclick忽略它们-但是

我正在开发一个Cordova应用程序,它有一个以传单JS为核心构建的地图。地图上有标记,单击后会弹出一个信息框

我想摆脱一般站点周围链接的300毫秒延迟-基本上是在所有的锚(a标签)上。我不需要将其应用于标记,因为当前用户点击标记时没有延迟

我已经安装了fastclick()-它出色地消除了a标记的延迟-但是它在传单JS标记上产生了问题,现在有时需要两个CIC来触发

我已经尝试在JS创建的标记上添加类“needsclick”,根据fastclick文档,该类应该使fastclick忽略它们-但是它似乎没有任何影响。(例如:)

由于单击事件位于img而不是标记上,如果我可以将Fastclick仅附加到标记上,我认为这将解决我的问题,但是我尝试将标记作为层传递给Fastclick,但这也不起作用。(例如:)

下面是一个演示该行为的最小JSFIDLE(需要iDevice):


如果有人有任何建议,我们将不胜感激

fastclick.js保存一个名为
this.targetElement
的内部变量,该变量跟踪当前正在点击的元素。当触发
touchend
事件时,fastclick.js检查触摸结束的元素是否与触摸开始的元素相同

在地图上进行正常的新单击时,
this.targetElement
以null开头,并且一切正常。如果快速点击该元素,则
this.targetElement=
并停留在该状态,这会导致fastclick.js内部函数
onMouse
拒绝下一次地图点击

我们通过修改fastclick.js解决了这个问题,如下所示:

diff --git a/fastclick.js b/fastclick.js
--- a/fastclick.js
+++ b/fastclick.js
@@ -606,6 +606,8 @@
                        this.sendClick(targetElement, event);
                }

+               this.targetElement = null;
+
                return false;
        };

// end of patch - don't copy this line
此修补程序导致在地图外部开始的
touchend
事件上清除
This.targetElement
变量,以便地图上的下一次点击不会被阻止

$(function() {
    var Anchors = document.getElementsByTagName("a");
    FastClick.attach(Anchors);
});
diff --git a/fastclick.js b/fastclick.js
--- a/fastclick.js
+++ b/fastclick.js
@@ -606,6 +606,8 @@
                        this.sendClick(targetElement, event);
                }

+               this.targetElement = null;
+
                return false;
        };

// end of patch - don't copy this line