我在我的Angular项目中使用了Github的模块项目,这让我可以调整我的DOM元素,这些元素是在div
之上绘制的,可用作绘图板。
顺便说一下,为了塑造我的第一个元素,简单的矩形,我正在使用 mouseDown - mouseMove - mouseUp 组合事件监听器,然后当我决定调整一个时,我将鼠标悬停在边缘并调整大小。
问题在于,在resizing事件中,是resizestart的组合 - resizing - resizeend ,虽然我知道模块正在使用和mouseDown-Move-Up事件监听器并发出上述事件之前,我无法创建MouseEvent,而是获得 ResizeEvent ,它没有 stopPropagation()方法,因此调用它会产生错误(这不是一个功能)。
我需要停止传播,因为当我在我的绘图板上调整我的元素大小时,click事件会冒泡到直接的父元素,因此我会调整现有元素的大小并同时创建一个新的矩形。
最重要的是,ResizeEvent甚至不包含类似“event.target”的属性,这会让事情变得更糟......
所以,我想知道如何解决这个问题?
我在考虑使用 @HostListeners ,但是该指令中执行的代码不会与Resizable指令混淆(模块被声明为指令)??
乱搞Resizable模块文件并不是一个好主意,因为如果有人想使用我的模块,则必须下载可调整大小项目的篡改文件......
答案 0 :(得分:2)
回答你的问题是:
event.preventDefault()
将停止默认功能。
我认为这可以解决您的问题。
event.preventDefault()
方法停止发生元素的默认操作。
例如:
阻止提交按钮提交表单
阻止链接跟踪URL
$(document).ready(function(){
$("a").click(function(event){
event.preventDefault();
});
});