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

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


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


  未捕获的TypeError:无法设置仅具有吸气剂的#的属性pageX


因此,我尝试将其复制到新对象并使用jQuery的extend更改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

09-16 08:07