我有一些单击元素时触发的函数。元素存储在一个数组中。但是触发功能的价值会发生变化。以下是该函数的代码:
// first I store the element of a list in an array
var promo = new Array(),
indexOfTheElement = 3;
$('#list li').each(function(){
promo.push($(this));
});
$(myArray[indexOfTheElement]).click(function(){
indexOfTheElement--;
// Do something
return false;
});
编辑:列表元素存储在数组中,单击列表元素时会触发该函数。例如,如果单击第三个元素,将触发该函数,然后单击第二个元素时它必须工作。
答案 0 :(得分:2)
它可能是一个范围问题,但我相信你想在每个函数调用上使用bind()和unbind()。例如:
var foo = function(){
myArray[index].unbind("click");
index--;
//do something
myArray[index].bind("click", foo);
return false;
}
答案 1 :(得分:0)
尝试使用live()
和$(document).ready()
$(document).ready(function(){
var promo = new Array(),
indexOfTheElement = 3;
$('#list li').each(function(){
promo.push($(this));
});
$(myArray[indexOfTheElement]).live('click',function(){
indexOfTheElement--;
// Do something
return false;
});
});