Dblclick事件处理程序不响应Apple设备

时间:2019-07-20 10:03:37

标签: javascript jquery html css

当前,我的应用程序使用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

1 个答案:

答案 0 :(得分:0)

在Chrome中这是一个晦涩的问题。这是由于改用了Chrome 56而引起的,该更改旨在提高移动设备上的滚动性能。

解决方法是添加如下CSS规则:

#modal_valve
{
  touch-action: none;
}

您可能还需要将其添加到其他元素中,具体取决于要拖动的元素。