我是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();
});
});
希望它能帮助你