【问题标题】:Jquery isn't getting called for an audio buttonJquery 没有被调用音频按钮
【发布时间】:2014-11-15 10:51:37
【问题描述】:

尝试在单击按钮时播放声音剪辑(此按钮还链接回另一个页面:

我该怎么做:

1) 让它工作? (适用于 mouseenter 但不适用于 .click())

2) 在链接导航之前暂停 1 秒以播放声音?

这是我的相关 jQuery 代码:

var beepOne = $("#ding")[0];
$("button[value='reload']")
.click(function() {
beepOne.play();


});

和 HTML:

<audio preload="auto" id="ding">
    <source src="audio/gameover.mp3"></source>
</audio>

<button class="btn" value="reload" id="snd" onClick="parent.location='../'" />Game Over!<br />Try Again?</button><br>

想通了,看起来我通过内联 Javascript 的 onClick 属性是错误的。删除它并将其添加到我的 jQuery 修复它并允许我像我想要的那样延迟声音在被重定向之前完成。这是我的完整代码,如果它对其他人有帮助的话:

var beepOne = $("#ding")[0];
$("#snd").click(function() {
beepOne.play();
setTimeout(function(){parent.location='/'},1000);

 });

【问题讨论】:

  • 检查编辑后的答案。
  • 那你应该发布自己的答案并将其标记为正确答案,我猜。

标签: jquery html audio


【解决方案1】:

试试这个:

var beepOne = $("#ding")[0];
$("#snd").click(function() {
beepOne.play();
 });

如果您可以编辑 HTML,那么可能会将 html 修改为

<audio preload="auto" id="ding" src="audio/gameover.mp3" type="audio/ogg"></audio>

可能会成功

【讨论】:

  • 好的,我选择了 id,但我仍然没有听到它按预期播放
  • 好的,这本身就可以工作,我想我知道发生了什么,我的按钮本身有内联 JS,这可能会覆盖这里的 JQuery。我只需要稍微延迟一下,然后将 parent.location='/' 放在它下面。
【解决方案2】:

你应该选择 iD

var beepOne = $("#ding")[0];

$("#snd").click(function() {
$('#ding').get(0).play();
 });

与此类似的旧 stackoverflow 线程

How do I play an audio file with jQuery?

【讨论】:

  • 谢谢我看到了相关性,尝试一下。好的,所以我看到“它应该”如何工作,它忽略了变量,只是拉动第一个 #ding 元素来播放。但它仍然无法正常工作。
猜你喜欢
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
相关资源
最近更新 更多