我有一个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