我正在使用jQuery AJAX从PHP文件中获取数据,该文件从MySQL数据库获取数据。我现在正试图在我的ajax调用之外使用该数组。具体来说,我正在为YT.Player加载多个视频ID,但我很难将我的数组转换为另一个函数。
这是我的测试代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var data = new Array();
$(document).ready( function() {
$.ajax({
type: 'POST',
url: 'test.php',
data: 'id=testdata',
dataType: 'json',
cache: false,
success: function(result) {
data = result;
$('#div1').html(result[4]);
},
});
});
$("button").click(function(){
alert(data[4]);
});
</script>
</head>
<body>
<button id="button">Test</button>
<div id="div1"><h2>div1</h2></div>
</body>
</html>
在页面按预期加载后,div会更改半秒。用于测试的单击函数不起作用,并且它不能用于我正在处理的实际函数中:
function onPlayerStateChange(event) {
if(event.data === 0) {
++i;
player.loadVideoById(data[i]);
}
}
这是我的第一个使用jQuery和JS的项目,所以我希望我错过了一些简单的
答案 0 :(得分:0)
你应该把
$("button").click(function(){
alert(data[4]);
});
内
$(document).ready( function() {
});
此外,如果您将 var 放在变量之前,那么它将变为局部变量。
因此,您应该在
之前删除 vardata = new Array();
或仅作为附加参数
function onPlayerStateChange(event, data) {
if(event.data === 0) {
++i;
player.loadVideoById(data[i]);
}
}
但是你还需要在
中调用它$(document).ready(function() {} );
范围。