onclick 不适用于 safari 和移动设备

很长一段时间以来,我一直在尝试修复这个错误,并联系了我的几个朋友,但他们都被难住了。我有一个网站,但没有一个按钮在移动设备或 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 文件的链接。


拉丁的传说
浏览 185回答 2
2回答

陪伴而非守候

像这样绑定多个事件,希望对你有用。// if supported touch, otherwise click event:let clickOrTouchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';document.getElementById('navWrap').addEventListener(clickOrTouchEvent, openNav() );

Cats萌萌

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

相关分类

JavaScript