阻止<a> tags when scrolling in mobile

时间:2019-01-06 20:10:36

标签: javascript jquery wordpress events triggers

I'm starting a website, http://alfstyle.com中的点击事件,并在我的手机中向下滚动时出现问题。标记中的click事件会意外触发。真令人沮丧。

我曾尝试停用插件,jQuery,某些脚本等。但没有任何效果。

I've made a screenshot where the issue begins.

我尝试通过在此处找到的javascript代码段阻止重定向: Stop touchend firing links unintentionally

但它不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

通常,在移动网站上滚动浏览不会激活网页上的链接。之所以发生这种情况,是因为向页面注入了其他代码。我找到了一部分代码,这些代码会使window.location的位置发生变化。

function toggleSubmenuDisplay() {

   document.addEventListener('touchstart', function(event) {

    if ( event.target.matches('a') ) {

        var url = event.target.getAttribute( 'href' ) ? event.target.getAttribute( 'href' ) : '';

        // If there’s a link, go to it on touchend
        if ( '#' !== url && '' !== url ) {
            window.location = url;

        // Open submenu if url is #
        }
        ...
     }

当前代码已附加到所有touchstart操作上。在移动设备上触摸时,将执行此处理程序,并且还将执行此部分:

if ( '#' !== url && '' !== url ) {
    window.location = url;
}

如果将调试器放在此处,您将看到此代码已执行。

还删除此脚本,它会导致在触摸手势上重定向:

 $('a').on('click touchend', function(e) {
        var el = $(this);
        var link = el.attr('href');
        if (link !== undefined && link !== '') {
            window.location = link;
        }
    });