2016-01-21 37 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

回答