onclick无法在Safari和移动设备上运行

时间:2020-07-24 21:14:19

标签: javascript html css safari onclick

很长时间以来,我一直在尝试修复此错误,并联系了我的几个朋友,他们都陷入了困境。我有一个网站,并且所有按钮都无法在移动设备或野生动物园中使用(在移动设备上,当我点击按钮时,:hover动画会播放)。我尝试了许多修复程序(将它们更改为标签,事件监听器,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打开Nav功能-

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 个答案:

答案 0 :(得分:0)

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

// if supported touch, otherwise click event:
let clickOrTouchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';

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

答案 1 :(得分:0)

我修复了它,并且我真的不确定为什么它不起作用,但是经过长时间的调试后,我发现由于某种原因我声明(甚至没有调用)的函数导致所有JavaScript停止工作。该函数是一个xmlHttpRequest,当我删除它时,一切正常。这可能是一个错误(适用于chrome),但它是一个异步请求,所以也许可以。希望这对有相同问题的任何人都有用!