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
但它不起作用。
谢谢!
答案 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;
}
});