为了账号安全,请及时绑定邮箱和手机立即绑定

onclick 不适用于 safari 和移动设备

onclick 不适用于 safari 和移动设备

拉丁的传说 2022-12-02 11:21:15
很长一段时间以来,我一直在尝试修复这个错误,并联系了我的几个朋友,但他们都被难住了。我有一个网站,但没有一个按钮在移动设备或 Safari 浏览器上可用(在移动设备上,当我点击按钮时:悬停动画播放)。我已经尝试了很多修复(将它们更改为标签、事件侦听器、tabindex、ontouchstart),但都没有用。该网站是实时的,如果需要我可以提供网址(但我不想看起来像我在宣传)这是一个按钮不起作用的示例 -html-<a href="javascript:void(0)" tabIndex="0" id="navWrap" onclick="openNav()" ontouchstart="openNav()">        <div class="navLine"></div>        <div class="navLine" id="navMid"></div>        <div class="navLine" id="navBottom"></div></a>-CSS-#navWrap{    position: absolute;    top: 75px;    right: 60px;    transform: translate(0px, -50%);    transition: 0.7s;    font-size: 50px;    cursor: pointer;}-javascript开启导航功能-function openNav() {  document.getElementById("mySidenav").style.width = "100%";}-javascript 事件监听器-window.addEventListener('load', function(){    document.getElementById('navWrap').addEventListener('click', openNav);    document.getElementsByClassName('closebtn')[0].addEventListener('click', closeNav);    document.getElementById('Create').addEventListener('click', create);    document.getElementById('TInput').addEventListener('click', MYfunctionTwo);});我在 html 文件的页脚中有指向 js 文件的链接。
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

像这样绑定多个事件,希望对你有用。


// if supported touch, otherwise click event:

let clickOrTouchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';


document.getElementById('navWrap').addEventListener(clickOrTouchEvent, openNav() );


查看完整回答
反对 回复 2022-12-02
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我修复了它,老实说我不确定为什么它不起作用,但经过长时间调试后我发现我出于某种原因声明(甚至没有调用)的函数导致所有 JavaScript 停止工作。该函数是一个 xmlHttpRequest,当我删除它时一切正常。这可能是一个错误(它在 chrome 上有效)但它可能是一个异步请求。希望这对遇到同样问题的人有用!



查看完整回答
反对 回复 2022-12-02
  • 2 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信