在 "tap, click" 事件触发两次。如何避免呢?

on "tap, click" event firing twice. how to avoid it?

我正在尝试制作带有区域标签的图像,我可以在其中单击每个区域并显示警报。

同时包含 "tap & click",我似乎无法弄清楚如何避免在桌面模式下使用鼠标单击两次触发事件。

$(document).ready(function(e) {
    $('img[usemap]').something();

    $('area').on('tap click', function() {
        alert($(this).attr('alt'));
    });
});

我已经搜索了几种方法,例如使用布尔值分隔事件,但它们并没有真正起作用,因为我真的很不擅长 javascript...

请帮我解决这个问题。非常感谢!

您可以尝试测试 window.ontouchstart 并仅绑定相关事件

$(document).ready(function(e) {
    $('img[usemap]').something();

    function clickArea(){
        alert($(this).attr('alt'));
    }

    if(typeof window.ontouchstart === 'undefined'){
        $('area').on('click', clickArea);
    } else{
        $('area').on('touchstart', clickArea);
    }
});