gpt4 book ai didi

javascript - createjs防止超链接交互

转载 作者:行者123 更新时间:2023-12-03 06:07:57 25 4
gpt4 key购买 nike

在我的简单应用程序 Canvas 中,由超链接包裹。放置在 Canvas 舞台上的某些对象在 click 事件上具有特殊的鼠标交互。是否有任何可能的解决方案可以通过使用鼠标单击事件监听器单击对象来防止超链接跳转?

最佳答案

通常,您只需在生成的鼠标事件上调用 preventDefault 即可,它将阻止链接事件触发。

element.addEventListener("click", function(e) { 
e.preventDefault();
}, false);

使用 EaselJS 是不可能的,因为尽管您可以访问任何 EaselJS 鼠标事件上的 nativeEvent,但 EaselJS 根本不使用“click”事件(而是使用“mousedown”的组合”和“鼠标悬停”)。因此,阻止点击事件的默认设置不会起到任何作用。

不起作用

// You would expect this to work.
myShape.on("click", function(e) {
e.nativeEvent.preventDefault(); // Nothing. This cancels a "mouseup" instead.
});

解决方法

但是,您可以很容易地解决这个问题。每次单击时,都会在所单击的项目(或应用程序中的任何位置)上设置一个标志。

myShape.addEventListener("click", function(event) {
myShape.clicked = true;
}, false);

然后,自己监听 Canvas 点击事件,检查并检查标志。请务必在之后重置它。这是可能的,因为“click”总是在“mouseup”之后触发

stage.canvas.addEventListener("click", function(event) {
if (myShape.clicked) { event.preventDefault(); }
myShape.clicked = false;
}, false);

这是一个显示其工作原理的快速 fiddle 。 http://jsfiddle.net/buqkvb1u/

我们正在寻找在 EaselJS 中处理这是否有意义。感谢您的报告!

关于javascript - createjs防止超链接交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39451690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com