You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript matchMedia实现移动端onclick事件失效如何解决

问题核心原因

你的代码存在作用域问题:你把mainappear函数定义在了navclick的条件块内部,属于局部函数,全局作用域访问不到,所以HTML里的内联onclick调用会直接抛出mainappear is not defined错误,自然无法触发功能。此外原逻辑没有处理窗口尺寸变化时的事件绑定/解绑,额外增加了复杂度。

最简修改方案

直接把屏幕尺寸判断逻辑放到点击函数内部即可,不需要监听resize事件,代码量更少,逻辑更清晰:

修改后的JavaScript代码

// 全局定义函数,点击时自动判断当前屏幕尺寸
function mainappear() {
  // 屏幕宽度大于等于1000px时直接退出,不执行任何操作
  if (window.innerWidth >= 1000) return
  const revee = document.getElementById("reviews-main")
  revee.style.visibility = revee.style.visibility === "visible" ? "hidden" : "visible"
}

HTML代码无需修改,保持原有写法即可

<div id="reviews-hover" onclick="mainappear()">
</div>
<div id="reviews-main">
</div>

方案说明

该方案只有在用户点击目标元素时才会做一次屏幕尺寸判断,小屏下触发显隐切换,大屏下点击无任何反应,完全符合你的需求。不需要额外监听窗口变化,也没有作用域冲突问题。

内容的提问来源于stack exchange,提问作者Soumya Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:24:03