event.clientX是readonly?

时间:2010-05-27 02:38:10

标签: javascript operators telerik

主要在IE 8中工作,但尝试为现代浏览器编写便携式解决方案。使用telerik控件。

我正在捕捉RadContextMenu的'显示'客户端事件,并试图调整它的坐标。无法为DOM事件的clientX,clientY和x,y成员分配新值。 Visual Studio中断了“htmlfile:Member not found”错误。

我的目标是在用户点击RadEditor时显示一个RadContextMenu(在某些条件下,这是管理层的要求)。所以我捕获了RadEditor内容区域(radEditor.get_document().body;)的onclick事件。然后我在上下文菜单中调用show(evt),其中'evt'是与click事件对应的事件对象。

由于RadEditor的内容位于IFRAME中,因此您必须在显示上下文菜单之前调整click事件的位置。这是在“显示”事件中完成的。但是,我无法为成员.clientX和朋友分配值。这就好像javascript暂时忘记了整数+和+ =运算符。

这些成员有可能在某些时候成为readonly / const吗?

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;

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案here。在将事件传递给contextMenu.show()函数之前,我复制并传递它。这很有魅力!