如何将具有只读成员的 javascript 对象复制到非只读成员



我有一个javascript对象,特别是一个MouseEvent对象:

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

我需要更改此对象的 pageX 属性,但它是只读的,所以我在控制台中收到此错误:

未捕获的类型错误:无法设置只有 getter 的 # 的属性页 X

所以我尝试将其复制到一个新对象并使用 jQuery 的扩展更改 pageX 属性,如下所示:

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

但我仍然收到同样的错误。

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

使用旧事件中的new Event构造一个新事件并修改这些值:

var newEvent = new Event(e);
newEvent.pageX = calcNewPageX();

参考: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

最新更新