如何在window点击事件函数外部访问event.clientX?
问题原因
你代码里的xAxis是用let声明在点击事件的回调函数内部,属于函数局部作用域,外部代码根本访问不到这个变量,所以会提示“xAxis未定义”。而且你在页面加载时就执行alert(xAxis),这时候还没触发点击事件,就算变量能访问到,值也是undefined。
解决方案
方案1:将变量提升到外部作用域声明
把xAxis在事件函数外面提前声明,这样函数内部可以赋值,外部也能访问到。注意要在点击后再访问变量,不然初始值是undefined:
// 外部作用域声明变量 let xAxis; window.onclick = function(event) { // 给外部变量赋值 xAxis = event.clientX; // 点击时直接弹出坐标 alert(xAxis); } // 如果要在外部其他地方使用,比如点击后触发其他逻辑,确保是点击后再执行 // 比如可以加个按钮触发外部的alert,而不是页面加载就执行 // document.querySelector('#btn').onclick = () => alert(xAxis);
方案2:直接在事件函数内处理逻辑
如果你的需求只是获取点击坐标后弹出,直接把alert放到事件函数里最直接,不需要外部变量:
window.onclick = function(event) { let xAxis = event.clientX; alert(xAxis); }
内容的提问来源于stack exchange,提问作者Md. Imran Ali
相关产品推荐
相关产品推荐

