我有一个包含几个 js 库的应用程序。在其中一个中,我在顶部为我的 html5 音频定义了一个变量。然后我有一个被调用的函数,它加载一些 html 并将其放在一个 div 中。该 HTML 包含一个我想要单击以播放音频的按钮。然后我使用全局定义的“myaudio”变量加载音频。结构是这样的:
var myaudio = null;
function loadPage() {
$.ajax({url:'myurl',
success: function(myhtml) {
$('#mydiv').html(myhtml);
... and then later....
if (!editor && audiofile.length) {
var soundfile = "/media/audio/"+thisuid+"/sceneaudio/"+audiofile;
myaudio = new Audio(soundfile).load();
$('#audioButton').css('display','block');
$('#audioButton').click(function() { myaudio.play(); });
}
}
});
}
一切正常,除了当我点击按钮时,我得到一个“myaudio undefined”错误。我认为这是因为范围问题。在我点击并有效回调时,myaudio 不在调用范围内。这是一个正确的假设吗?我怎样才能解决这个问题?
我尝试将 click jquery 放在函数之外并使用 jquery .on 指令,但得到了相同的结果。
谢谢。