我在函数内有一个函数,但在传递变量时遇到问题。 我正在使用 jQuery 和 Parse.com 这是我的代码:
<script>
$(document).ready(function () {
var tokfile;
Parse.initialize(myApp, myID);
var some_file = Parse.Object.extend("myApp");
var query = new Parse.Query(some_file);
query.equalTo("objectId", "xcxcxcxc");
query.find
({
success: function (results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
console.log(object.id + ' - ' + object.get('some_file'));
var myObject = object.get('some_file');
var myFile = myObject._url
}
},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});
$("#mp3").attr("src", myFile)
});
</script>
<audio controls preload="none" style="width:480px;">
<source id="mp3" src="placeholder" type="audio/mp3" />
正如您所见,我正在尝试将 #mp3 id 的 src 更改为从 Parse.com 获取的 URL 现在由于某种原因我无法加载它,而是使用占位符加载 DOM。 提前致谢!
最佳答案
正在改变的是变量的范围,因此将 myFile 变量放在请求的范围之外:
<script>
$(document).ready(function () {
var tokfile;
Parse.initialize(myApp, myID);
var some_file = Parse.Object.extend("myApp");
var query = new Parse.Query(some_file);
var myFile;
query.equalTo("objectId", "xcxcxcxc");
query.find
({
success: function (results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
console.log(object.id + ' - ' + object.get('some_file'));
var myObject = object.get('some_file');
var audioElement = document.querySelector('#audioplayer');
var source = document.querySelector('#mp3');
source.src = myObject._url;
audioElement.load();
}
},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});
$("#mp3").attr("src", myFile)
});
</script>
<audio controls preload="none" id="audioplayer" style="width:480px;">
<source id="mp3" src="placeholder" type="audio/mp3" />
关于javascript - 在两个嵌套函数之间共享变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510268/