我需要通过事件对象传递originalEvent: MouseEvent { ... }
。通常您可以这样做:
$('#name').trigger({
type: 'mousedown',
clientX: 115,
clientY: 20
);
不幸的是,以下操作无效:
$('#name').trigger({
type: 'mousedown',
clientX: 115,
clientY: 20,
originalEvent: MouseEvent {
isTrusted: true,
clientX: 115,
clientY: 20,
layerX: 115,
layerY: 20,
pageX: 115,
pageY: 20,
screenX: 115,
screenY: 20,
x: 115,
y: 20
},
pageX: 115,
pageY: 20
});
错误:
SyntaxError:意外令牌'{'。应该以'}'结尾的对象文字。
答案 0 :(得分:1)
这主要是语法问题。您需要使用new
关键字来调用constructor of MouseEvent
。您还需要提供第一个参数作为引发的MouseEvent的类型,然后第二个参数是包含事件属性的对象。在下面的示例中,我使用了click
,但是可以很容易地更改它。
还请注意,isTrusted
是一个只读属性,您无法通过编程方式进行设置。
$('#name').on('mousedown', function(e) {
console.log(e.originalEvent);
});
$('#name').trigger({
type: 'mousedown',
clientX: 115,
clientY: 20,
originalEvent: new MouseEvent('click', {
clientX: 115,
clientY: 20,
layerX: 115,
layerY: 20,
pageX: 115,
pageY: 20,
screenX: 115,
screenY: 20,
x: 115,
y: 20
}),
pageX: 115,
pageY: 20
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="name">Name</button>