【问题标题】:Processing keydown and keyup [jquery]处理 keydown 和 keyup [jquery]
【发布时间】:2015-05-21 18:18:30
【问题描述】:

有这样的处理程序:

<script>
function start() {
    var audio = new Audio('URL');
    audio.play();
}

function stop() {
    var aud = document.getElementById(id);
    aud.pause();
    aud.currentTime = 0;
}

$(document).keydown(function(e) {
    if (e.keyCode == 81) {
        return start();
    }
});
$(document).keyup(function(event) {
    if (event.keyCode == 81) {
        return stop();
    }
});
</script>

脚本有效,但不知何故出错。
也就是说,它工作了一秒钟,然后开始重新运行递归函数 start(),这就是声音相互强加的原因。
我还需要使脚本仅在按下时工作(再现声音),然后在释放时停止(典型合成器的原理)。

请帮助我处理处理程序 keydown 和 keyup。
谢谢!

【问题讨论】:

    标签: jquery audio keydown keyup


    【解决方案1】:

    我建议您设置新变量。像soundIsPlaying = false 这样的东西,在start() 方法的开头将其设置为true,在stop 方法的末尾返回false。如果声音尚未打开,您只想开始播放声音。

    这样做的原因是用户可能会更快地按下“开始”按钮,而不是声音完成所需的时间,并且您必须以某种方式检查是否现在必须启用音乐。

    附:请务必将此变量设置在程序的上层范围内,以便在启动/停止方法调用之间保持其状态。

    【讨论】:

    • 我不知道它会有什么帮助,但这是我的完整脚本link。用鼠标工作就好了,但键盘更难。我无法捕捉事件按键,事件按键。
    猜你喜欢
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    相关资源
    最近更新 更多