如何防止点击功能在双击时运行



我是Jquery和Javascript的新手。我希望我的代码在点击文档中的任何位置时都能播放声音,双击.marker.时能播放不同的声音

它现在可以工作,但当我双击标记时,它会同时播放两次.click函数和双击函数。

双击时如何防止.click播放?

这是我的Jquery代码:

$(document).ready(function () {
$(document).click(function () {
setTimeout(function () {
let audio = document.createElement("audio");
audio.src = "audio/click-audio.wav";
audio.play();
}, 700);
});
$('.marker').dblclick(function () {
let audio = document.createElement("audio");
audio.src = "audio/page-audio.wav";
audio.play();
});
});

只需检查点击的元素是否为.marker:

$(document).click(function(event) { 
if($(event.target).is(".marker")) return ;
setTimeout(function() {
let audio = document.createElement("audio");
audio.src = "audio/click-audio.wav"; 
audio.play();}, 700);

});

使用事件属性,可以实现

$('marker').click(function(event) {
if(!event.detail || event.detail == 1){
// code here.
// It will execute only once on multiple clicks
}
});

stopPropagation((方法停止将事件冒泡到父元素,防止任何父处理程序收到该事件的通知。

$(document).click(function () { 
setTimeout(function() {
let audio = document.createElement("audio");
audio.src = "audio/click-audio.wav"; 
audio.play();}, 700);

});
$('.marker').click(function (event) { 
let audio = document.createElement("audio");
audio.src = "audio/page-audio.wav"; 
audio.play(); 
event.stopPropagation();
});
});

希望它能帮助你

最新更新