当前,我的应用程序使用FancyTree jquery插件,dblclick事件不仅仅适用于苹果设备,在iphone7 / 8上设置的Google chrome开发人员模式下运行时,它在控制台中给我以下错误: [干预]由于目标被视为被动,因此无法阻止被动事件侦听器中的Default。
但是,当关闭设备工具栏时,它工作正常。 与android和Windows设备相同。
也无法在Apple设备上安装Chrome。
可能是什么问题?
谢谢。
安装doubletap.js没有任何结果。 来自插件中事件处理程序的代码
.on("click" + ns + " dblclick" + ns, function(event) {
if (opts.disabled) {
return true;
}
var ctx,
et = FT.getEventTarget(event),
node = et.node,
tree = self.tree,
prevPhase = tree.phase;
// self.tree.debug("event(" + event.type + "): node: ", node);
if (!node) {
return true; // Allow bubbling of other events
}
ctx = tree._makeHookContext(node, event);
// self.tree.debug("event(" + event.type + "): node: ", node);
try {
tree.phase = "userEvent";
switch (event.type) {
case "click":
ctx.targetType = et.type;
if (node.isPagingNode()) {
return (
tree._triggerNodeEvent(
"clickPaging",
ctx,
event
) === true
);
}
return tree._triggerNodeEvent(
"click",
ctx,
event
) === false
? false
: tree._callHook("nodeClick", ctx);
case "dblclick":
ctx.targetType = et.type;
return tree._triggerNodeEvent(
"dblclick",
ctx,
event
) === false
? false
: tree._callHook("nodeDblclick", ctx);
}
} finally {
tree.phase = prevPhase;
}
});
[Intervention]由于目标被视为被动,因此无法阻止被动事件侦听器中的Default
答案 0 :(得分:0)
在Chrome中这是一个晦涩的问题。这是由于改用了Chrome 56而引起的,该更改旨在提高移动设备上的滚动性能。
解决方法是添加如下CSS规则:
#modal_valve
{
touch-action: none;
}
您可能还需要将其添加到其他元素中,具体取决于要拖动的元素。