jquery上的随机音频onmouseover不工作
我试图使用jquery为我所有的导航按钮创建一个随机音频效果,基本上是将鼠标悬停在唯一的导航div上,然后播放阵列中的随机音频mp3文件jquery上的随机音频onmouseover不工作,jquery,arrays,audio,random,onmouseover,Jquery,Arrays,Audio,Random,Onmouseover,我试图使用jquery为我所有的导航按钮创建一个随机音频效果,基本上是将鼠标悬停在唯一的导航div上,然后播放阵列中的随机音频mp3文件 <!DOCTYPE html> <html> <head> <title>AAARGH CARIBBEAN PIRATES</title> <meta charset = "utf8"> <link
<!DOCTYPE html>
<html>
<head>
<title>AAARGH CARIBBEAN PIRATES</title>
<meta charset = "utf8">
<link rel = "stylesheet" href = "main.css">
<script src = "jq/jquery-1.10.2.js"></script>
</head>
<body>
<div class = "wrapper">
<div class = "navmain">
<div class = "navbox">
<p class = "navi"><a href = "arms.html">arms</a></p>
</div>
<div class = "navbox">
<p class = "navi"><a href = "map.html">map</a></p>
</div>
<div class = "navbox">
<p class = "navi"><a href = "ship.html">ship</a></p>
</div>
<div class = "navbox">
<p class = "navi"><a href = "facts.html">facts</a></p>
</div>
<div class = "navbox">
<p class = "navi"><a href = "speech.html">speech</a></p>
</div>
</div>
<div id = "home">
<div id = "innerhome">
<p class = "basic">
AAARGH mateys, the caribbean was a ..
</p>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.navbox').onmouseover(playSound());
});
function playSound(){
var audio[];
audio[0] = new Audio("assetts/audio/bird.mp3");
audio[1] = new Audio("assetts/audio/cannon.mp3");
audio[2] = new Audio("assetts/audio/fire.mp3");
audio[3] = new Audio("assetts/audio/monkey.mp3");
audio[4] = new Audio("assetts/audio/crows.mp3");
audio[5] = new Audio("assetts/audio/cannon2.mp3");
var x = Math.floor((Math.random()*1000) % 6);
audio[x].play();
}
</script>
</body>
啊,加勒比海盗
啊,马特斯,加勒比海是。。
$(文档).ready(函数(){
$('.navbox').onmouseover(playSound());
});
函数playSound(){
var音频[];
音频[0]=新音频(“assetts/audio/bird.mp3”);
音频[1]=新音频(“assetts/audio/cannon.mp3”);
音频[2]=新音频(“assetts/audio/fire.mp3”);
音频[3]=新音频(“assetts/audio/monkey.mp3”);
音频[4]=新音频(“assetts/audio/crows.mp3”);
音频[5]=新音频(“assetts/audio/cannon2.mp3”);
var x=数学地板((数学随机()*1000)%6);
音频[x]。播放();
}
它不工作..不确定哪里出了问题给定代码存在多个问题 HTML 首先是一个建议。您应该将导航标记重新构建为更常见、更现代、更易访问的标记,例如:
<nav>
<ul class="navmain">
<li class="navbox"><a href="arms.html">arms</a></li>
<li class="navbox"><a href="map.html">map</a></li>
<li class="navbox"><a href="map.html">map</a></li>
<li class="navbox"><a href="ship.html">ship</a></li>
<li class="navbox"><a href="facts.html">facts</a></li>
<li class="navbox"><a href="speech.html">speech</a></li>
</ul>
</nav>
演示
一些进一步的解释
var音频[]代码>将不起作用,例如它将在C++中,其中<代码>字符串音频[6 ];<代码>是有效的。但是,您可以像初始化时那样插入所有元素,也可以像下面这样创建空数组:
var audio = [];
jQuery函数不是调用.onmouseover
,而是调用。您可以传入不带大括号的函数名,如:
$('.navbox').mouseover(playSound);
或者您可以创建一个函数,如:
$('.navbox').mouseover(function() { playSound(); } );
最后,我将音频
-数组设置为全局,用户每次悬停其中一个项目时,您不会重新创建它和所有六个音频元素,我将当前播放的项目存储在一个变量中,以便您可以在开始新的声音之前停止它
希望这有帮助。当您调试console.log(音频)时代码>。你会得到一个空数组还是一个HTMLAudioElement
对象数组?我对这一切都不熟悉,所以我在console.log上乱搞,我的音频消息出现在console中,但没有其他内容……总之,我已经将缺少的括号添加到我的文档就绪声明中,现在声音可以随机工作,但只有在页面加载或刷新时才能工作当我把鼠标移到所选的div上时…没有任何线索吗
$('.navbox').mouseover(function() { playSound(); } );