单击Web上的另一个声音按钮后,jQuery声音不会停止

时间:2013-03-07 16:13:41

标签: javascript jquery html5

我正在尝试根据我在Google搜索中找到的一些代码和示例创建一个音板(我在这里找到的很多示例)。它具有我目前所需的所有基本核心功能,除了一个非常重要的功能,我无法弄清楚:当我点击另一个音频按钮时如何停止播放所有音频。

这是我目前的工作代码:

$(function() {
    $("audio").removeAttr("controls").each(function(i, audioElement) {
        var audio = $(this);
        var that = this;
        var isplaying = false;

        $("#profile").append($('<button>' + audio.attr("title") + '</button>').click(
        function() {
            if (isplaying == false) {
                that.play();
                isplaying = true;
            } else {
                that.pause();
                that.currentTime = 0;
                isplaying = false;
            }
        }));
    });
});

我有想法将div“#profile”包装在另一个div“#global”中,然后尝试阻止所有声音在#global中播放,但它不起作用:

$(function() {
    $("audio").removeAttr("controls").each(function(i, audioElement) {
        var audio = $(this);
        var that = this;
        var isplaying = false;

        $("#profile").append($('<button>' + audio.attr("title") + '</button>').click(
        function() {
            if (isplaying == false) {
                that.play();
                isplaying = true;
            } else if (isplaying == true) {
                $("#global").click(
                function() {
                    that.pause();
                    that.currentTime = 0;
                    isplaying = false;
                });
            }
        }));
    });
});

它的功能比我在#profile中以相同的方式停止音频更好(我使用的是松散的),因为当我这样做时,音频根本没有播放。但是,使用上面的代码,在我单击按钮关闭音频后,它将不会再次播放,直到我刷新页面。我最大的问题仍然存在:按下多个按钮时声音仍然重叠......

老实说,我不知道自己在想什么,因为上面的内容听起来并不完全合乎逻辑,而且我几乎退后一步......但我一直在这整个项目连续四天,我想我会失去理智。我采取这种方法是正确的,或者我是否接近,或者我只是简单的智障?

请帮忙。

0 个答案:

没有答案