2016-01-21 61 views
0

我有一个JavaScript对象,特别是MouseEvent对象:如何将只读成员的javascript对象复制到非只读成员?

$('#my_container').bind('mousemove', function(e) { 
    if (someCondition) { 
     e.pageX = calcNewPageX 
    } 
}}); 

,我需要改变这个对象的pageX属性属性,但它是只读的,所以我得到这个错误在控制台:

Uncaught TypeError: Cannot set property pageX of # which has only a getter

所以我试图将其复制到一个新的对象,并使用jQuery的扩展这样的改变pageX属性属性:

var copiedEvent = $.extend(true, { pageX: 500 }, e); 

,但我仍然得到SAM e错误。

如何复制MouseEvent对象并将新副本对象的pageX属性设置为我自己的东西?我错过了什么或做错了什么?

+0

我需要这个事件对象传递给方法(Highcharts框架的一部分,这是我无法更改),它使用其他图表上的pageX属性同步每个图标上的十字准线位置。 – Shahar

+0

您是否尝试过使用旧事件的值构建新的MouseEvent(https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events) –

+0

@PeteTNT是的,这实际上工作,谢谢! 我最终做了这样的事情:'var copiedEvent = new Event(e); copiedEvent.pageX = newPageXValue'并且没有控制台错误。 如果您添加答案,我会将其标记为正确。 – Shahar

回答