Javascript 关于;轻触,单击";事件触发两次。如何避免呢?
我正在尝试制作一个带有区域标签的图像,在那里我可以单击每个区域并显示警报 由于“点击并点击”都包括在内,我似乎不知道如何避免在桌面模式下用鼠标点击两次触发事件Javascript 关于;轻触,单击";事件触发两次。如何避免呢?,javascript,jquery,touch-event,jquery-click-event,Javascript,Jquery,Touch Event,Jquery Click Event,我正在尝试制作一个带有区域标签的图像,在那里我可以单击每个区域并显示警报 由于“点击并点击”都包括在内,我似乎不知道如何避免在桌面模式下用鼠标点击两次触发事件 $(document).ready(function(e) { $('img[usemap]').something(); $('area').on('tap click', function() { alert($(this).attr('alt')); }); }); 我已经搜索了几种方法,
$(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);
}
});
我制作了一个JSFIDLE,它本应复制错误,但事实并非如此:我猜您的页面中包含了两次相同的代码,并且它将两次单击事件绑定到同一元素。@JohnSparwasser谢谢!那很有趣。为什么这火不烧两次,而我的火烧两次呢?:你也可以把水龙头拿出来看看这是否给你带来了错误。如果它仍然在没有tap事件绑定的情况下触发两次事件,那么您知道它是重复的代码,或者类似的代码。@JohnSparwasser尝试去掉“tap”并只留下“click”,它只触发一次,没有任何错误,但“tap click”也没有给我任何错误,它只触发了两次:/I我必须花更多的时间研究javascript。。谢谢你的帮助!哇,它真漂亮!非常感谢!将在倒计时后标记为应答。这将在具有触摸和单击界面的设备上造成问题。请看这里: