函数未被调用
function doesn't get called
我的play()
函数没有被调用。我真的不知道为什么。
我有以下代码:
var mp = document.getElementById("mp3");
function play() {
mp.play();
console.log("hello");
}
function scan() {
cordova.plugins.barcodeScanner.scan(
function(result) {
if (result.text == "home") {
var atHomeRepQR = '<div class="container-h"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atHomeSaveQR", atHomeRepQR);
}
if (result.text == "street") {
var atStreetRepQR = '<div class="container-s"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atStreetSaveQR", atStreetRepQR);
}
if (result.text == "bern") {
var atBernRepQR = '<div class="container-b"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atBernSaveQR", atBernRepQR);
}
if (result.text == "bahnhof") {
var atBahnhofRepQR = '<div class="container-ba"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atBahnhofSaveQR", atBahnhofRepQR);
}
if (result.text == "atelier") {
var atAtelierRepQR = '<div class="container-at"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atAtelierSaveQR", atAtelierRepQR);
}
},
function(error) {
alert("Scanning failed: " + error);
}
);
}
语法
<button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>
当你问我时是正确的。
我的错误是什么?
在解析#mp3
之前,您的mp
变量可能正在初始化。 您应该将任何类似的静态代码包装在 document.ready
块中,以便将其执行延迟到页面加载完成。
理想情况下,这将使用 jQuery 实现:
var mp;
$(document).ready(function() {
mp = document.getElementById("mp3");
});
在没有它的情况下,这对于大多数现代浏览器来说就足够了(请参阅此答案):
var mp;
document.addEventListener("DOMContentLoaded", function(event) {
mp = document.getElementById("mp3");
});
我不得不mp
像这样play()
函数中放入函数中:
function play() {
var mp = document.getElementById("mp3");
mp.play();
}
感谢mplungjan!
我认为,你的javascript代码在body标签之前。因此,在"mp"元素中没有得到。因此,将您的javascript代码移动到body标签之后,即在渲染html之后。
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量