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

Safari鼠标点击时event.pointerType未定义的替代判断方案咨询

Safari鼠标点击事件的pointerType兼容问题及判断方案验证

问题情况

  • Safari浏览器中,鼠标点击元素时event.pointerType值为undefined,而Chrome中该值为"mouse",需要实现Safari下的等价判断以满足业务需求。
  • 尝试过使用pointerdown事件监听器,但因代码嵌套在另一个jQuery .on() 监听器内部,出现首次点击不触发、两个监听器仅执行其一的问题,且无法调整jQuery监听器的触发逻辑来解决。

调试发现的判断思路

调试后发现,Safari中鼠标点击事件的originalEvent.constructor.name值为"MouseEvent",可用于判断是否为鼠标点击,但不确定该方案是否具备可靠性。

相关代码示例

构造函数名称打印测试代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("p").on("click", function(event){
    console.log("print originalEvent name", event.originalEvent.constructor.name)
  });
});
</script>

<p>Click this paragraph.</p>

业务判断逻辑代码

$(document).on("click", ".my-btn-class", function(evtParam){
  if(evtParam.originalEvent && evtParam.originalEvent.constructor && 
     evtParam.originalEvent.constructor.name === "MouseEvent"){
    // 执行业务逻辑
  }
})

疑问

是否可以依赖originalEvent.constructor.name === "MouseEvent"这一判断逻辑,来实现Safari中的鼠标点击识别?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:50:28