jquery - 有没有办法在手动触发时通过点击事件获取页面 X 和页面 Y
问题描述
我制作了一个带有点击功能的按钮。当我单击它时,我得到了页面 X 和页面 Y,但是当我尝试在此页面 X 中使用 button.trigger('click') 来单击按钮时,页面 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>
解决方案
好吧,这是有道理的,因为手动触发的事件不涉及鼠标。您需要跟踪最后一个鼠标位置(通过监听鼠标移动事件)并像这样触发事件: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);
})
推荐阅读
- javafx - JavaFX - 获取节点相对于其父节点的坐标
- algorithm - Leetcode 上“岛屿数量”的 DFS 和 BFS 时空复杂度
- matlab - 我应该如何解释这个神经网络输出?
- android - 在 SupportFragment 中将标记添加到 Google 地图
- html - CSS - 在定义的距离上将 div 的所有边缘淡化为透明
- excel - 如何在 Excel 中创建额外的精确列宽?
- java - 从 JDialog 中的 JOptionPane 获取输入
- rust - 如何创建具有堆分配数据的常量枚举变体以用于模式匹配?
- angular - 带有 Angular 6 库的 SCSS
- python - 在添加到 __all__ 的模块中运行功能还需要什么