我正在使用jQuery并在document.ready上填充数组。
在我的页面中,我有一些带有点击事件的元素。我在document.ready函数之外定义了该函数。
我似乎无法弄清楚如何从我的onclick函数中访问该数组变量。
为了简化,我想这样的工作:
$(document).ready(function(){
var artists = new Array();
artists.push('item1');
artists.push('item2');
});
function clickLink() {
alert(artists[0]);
}
答案 0 :(得分:3)
许多方法,最简单的方法之一,在.ready()函数中移动您的点击操作。你需要将它绑定到那里的元素而不是内联属性:
$(document).ready(function(){
var artists = new Array();
artists.push('item1');
artists.push('item2');
$('#idOfTheElement').click(function() {
alert(artists[0]);
});
});
答案 1 :(得分:2)
嗨,你失去了创建数组的范围,所以有两种方法可以解决它
全部放在同一范围内:
$(document).ready(function(){
var artists = new Array();
artists.push('item1');
artists.push('item2');
function clickLink() {
alert(artists[0]);
}
});
将数组声明为全局:
var artists = new Array();
$(document).ready(function(){
artists.push('item1');
artists.push('item2');
});
function clickLink() {
alert(artists[0]);
}
答案 2 :(得分:1)
您必须在artists
函数之外声明document.ready()
数组,并将该函数与click事件绑定。
var artists = new Array();
$(document).ready(function() {
artists.push('item1');
artists.push('item2');
});
$('button').click(function() {
console.log(artists[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>click</button>
答案 3 :(得分:0)
一个简单的解决方案是在声明数组变量时删除var关键字,这将使变量成为全局且不推荐使用,另一个解决方案是在函数外部声明数组,以便可以从onclick引用它功能。