jQuery触发单击不会保留set pageX和pageY值

时间:2018-04-18 11:08:39

标签: javascript jquery events

我希望能够在给定(x, y)坐标的应用程序中手动单击HTML5 Canvas元素。也就是说,我能够触发click事件,但事件的pageXpageY坐标始终会返回0

// the always prints out 0, 0
window.addEventListener('click', (e) => {
  console.log(e.pageX, e.pageY);
});


// triggering of action based on random X, Y coords
const action = new $.Event('click', {
  pageX: Math.random() * window.innerWidth,
  pageY: Math.random() * window.innerHeight
});
this.$canvas.trigger(action);

1 个答案:

答案 0 :(得分:0)

需要确保您触发event的项目与您附加事件监听器的项目相匹配。例如:

const $canvas = $('canvas');

$canvas.on('click', (e) => {
  console.log(e.pageX, e.pageY);
});

// triggering of action based on random X, Y coords
$canvas.trigger($.Event('click', {
  pageX: Math.random() * window.innerWidth,
  pageY: Math.random() * window.innerHeight
}));