gpt4 book ai didi

javascript - 如何在 Angular 中创建 MouseEvent,包括位置属性

转载 作者:行者123 更新时间:2023-11-29 23:17:53 25 4
gpt4 key购买 nike

我只需要捕捉按钮上的点击事件并更改事件 type 并再次发送它

下面类似的东西在 jquery 中,但我想用 Angular 来做

button.on("click", function(event) {
var newEvent = $.extend({}, event, { type: "dxcontextmenu" });
event.stopPropagation();
$(this).trigger(newEvent);
});

我可以执行 dispatchEventEventMouseEvent 构造函数没有 screenXclientX 或 ...

我尝试使用扩展运算符或 Object.Assign,但只有 isTrustedtype 属性会被复制。

我的代码是

onClick(event:any) {
event.stopPropagation();

console.log(event);

const newEvent = Object.assign({}, event, { type: 'dxcontextmenu' });
console.log(newEvent);
event.target.dispatchEvent(newEvent);

// event.target.dispatchEvent(new Event('dxcontextmenu', { bubbles: true }));

}

这是stackblitz链接到它

最佳答案

如果其他人有同样的问题,我找到了解决方案

openContextMenu(event: MouseEvent)
{
if (event.target)
{
const newEvent = new MouseEvent('dxcontextmenu', { bubbles: true });
newEvent.initMouseEvent(
'dxcontextmenu',
true,
false,
event.view,
event.detail,
event.screenX,
event.screenY,
event.clientX,
event.clientY,
event.ctrlKey,
event.altKey,
event.shiftKey,
event.metaKey,
event.button,
event.relatedTarget
);

event.stopPropagation();
event.target.dispatchEvent(newEvent);
}
}

关于javascript - 如何在 Angular 中创建 MouseEvent,包括位置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045159/

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