手动触发时,是否可以通过点击事件获取页面X和页面Y

时间:2019-06-25 05:08:37

标签: jquery

我用点击功能创建一个按钮。当我单击它时,我得到了X页和Y页,但是当我尝试通过使用button.trigger('click')来单击该按钮时,该X页和Y页却没有出现。

$('#click-me').click(function(e) {

  console.log('pageY', e.pageY);
  console.log('pageX', e.pageX);
});

setTimeout(function() {
  $('#click-me').trigger('click');
}, 1000);
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script
		  src="https://code.jquery.com/jquery-3.4.1.min.js"
		  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
		  crossorigin="anonymous"></script>
</head>
<body>

	<button id="click-me">Click Me</button>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

这很有意义,因为手动触发的事件中没有鼠标。您需要跟踪鼠标的最后一个位置(通过监听鼠标移动事件)并像这样触发事件:https://jsfiddle.net/ghnpjL4c/1/

$(function(){
    var lastX = 0;
    var lastY = 0;

  $('#clickMe').on('click', function(e){
    console.log("PageX " + e.pageX);
    console.log("PageY " + e.pageY);
  });

  $(document).on('mousemove', function(e){
    lastX = e.pageX;
    lastY = e.pageY;
  });

  setTimeout(function(){
    var e = $.Event('click');
    e.pageX = lastX;
    e.pageY = lastY;
    $('#clickMe').trigger(e);
  }, 3000);
})