【发布时间】:2015-05-20 17:43:11
【问题描述】:
有一个js-script:
<script>
function start1() {
var audio = new Audio();
audio.src = URL.createObjectURL(document.getElementById('f1').files[0]);
audio.autoplay = true;
}
function start2() {
var audio = new Audio();
audio.src = URL.createObjectURL(document.getElementById('f2').files[0]);
audio.autoplay = true;
}
...
function stop() {
var audio = new Audio();
audio.stop();
}
</script>
和html代码:
<body>
<input type="file" id="f1"></input>
<input type="file" id="f2"></input>
...
<button onmousedown="start1()" onmouseup="stop()">1</button>
<button onmousedown="start2()" onmouseup="stop()">2</button>
...
通过脚本可以理解,他播放了一个声音文件,该文件是使用表单文件加载的。
但是有两个问题:
1) 要求仅在按下事件时播放声音 (onmousedown),并在释放鼠标按钮时停止 (onmouseup)。
现在声音播放到最后,无论您是否单击鼠标按钮并放开它都无关紧要(因为没有测试这种情况)。
2)还需要创建一个简化版的脚本,因为要处理的函数应该是16个,而不是手动注册每个函数一样。您必须创建一个生成的脚本来处理 N 个 id(start1、start2 等、f1、f2 等)。
帮助修改代码,也可以完全编码jquery。这并不重要。
谢谢。
【问题讨论】:
-
您的问题发生是因为您只在函数内部创建本地变量,因此无法从另一个函数访问它们。你也总是使用相同的变量名
标签: javascript jquery events audio