首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.blur()声音通知

.blur()声音通知
EN

Stack Overflow用户
提问于 2014-08-17 15:28:33
回答 1查看 118关注 0票数 0

我有两个文本框,其值为“是”和“否”。当我在第一个文本框中输入“是”时,它会发出嗡嗡声,其余的文本框也会出现同样的情况。当我在相应的文本框中输入正确的值时,声音应该只播放一次

在我的例子中,声音一次又一次地重复.我不知道可能是什么原因。

代码语言:javascript
复制
<input type="text" id="question"/>
<input type="text" id="question1"/> 
<audio src="beep.mp3" id="mp3" preload="auto"></audio>

function checkResults() {

    if ($('#question').val().toLowerCase() == 'yes') {
            document.getElementById("mp3").play();

    }

    if ($('#question1').val().toLowerCase() == 'no') {
        document.getElementById("mp3").play();
    }


}

$('input').blur(checkResults);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-17 16:39:32

声音不止一次播放,因为您正在检查blur事件,因此每次用户模糊出框时,只要在框中有正确的答案,声音就会重放。相反,您应该检查keyup事件。

示例:

代码语言:javascript
复制
var answers = {
    'question': 'yes',
    'question1': 'no'
};

function checkResults() {
    var $this = $(this), val = $this.val().toLowerCase();

    for (var k in answers) {
        if (answers.hasOwnProperty(k)) {
            if (answers[$this.attr('id')] && answers[$this.attr('id')] === val) {
                  play(); 
            }
        }
    }   
}

function play() {
    var sound = document.getElementById('mp3');
    sound.pause();
    sound.currentTime = 0;
    sound.play();
}

$('input').on('keyup', checkResults);

JSFiddle演示

http://jsfiddle.net/7ahpgt5s/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25350661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档