Javascript event.clientX是只读的吗?
主要是在IE8中工作,但试图为现代浏览器编写一个可移植的解决方案。使用telerik控件 我正在捕捉RadContextMenu的“显示”客户端事件,并尝试调整其坐标。无法为DOM事件的clientX、clientY和x、y成员分配新值。Visual Studio出现“htmlfile:Member not found”错误而中断 我的目标是当用户点击RadEditor时,在RadEditor内部显示RadContextMenu(在某些情况下,这是管理层的要求)。因此,我捕获了RadEditor内容区域的onclick事件(Javascript event.clientX是只读的吗?,javascript,operators,telerik,Javascript,Operators,Telerik,主要是在IE8中工作,但试图为现代浏览器编写一个可移植的解决方案。使用telerik控件 我正在捕捉RadContextMenu的“显示”客户端事件,并尝试调整其坐标。无法为DOM事件的clientX、clientY和x、y成员分配新值。Visual Studio出现“htmlfile:Member not found”错误而中断 我的目标是当用户点击RadEditor时,在RadEditor内部显示RadContextMenu(在某些情况下,这是管理层的要求)。因此,我捕获了RadEditor
RadEditor.get_document().body;
)。然后在上下文菜单上调用show(evt)
,其中“evt”是与单击事件对应的事件对象
由于RadEditor的内容位于IFRAME中,因此必须在显示关联菜单之前调整单击事件的位置。这是在“显示”事件中完成的。但是,我无法为members.clientX和friends赋值。就好像javascript暂时忘记了整数+和+=运算符
这些成员是否可能在某个时候成为只读/常量
var evt = args.get_domEvent();
while (node) {
evt.clientX += node.offsetLeft; //'Member not found' here.
evt.clientY += node.offsetTop;
node = node.offsetParent;
}
evt.clientY += sender.get_element().clientHeight;
var evt=args.get_domEvent();
while(节点){
evt.clientX+=node.offsetLeft;//此处未找到成员。
evt.clientY+=node.offsetTop;
node=node.offsetParent;
}
evt.clientY+=sender.get_元素().clientHeight;
好的,我找到了解决办法。在将事件传递到contextMenu.show()函数之前,我制作了一个副本并将其传递。这真有魅力