如何触发可以改变的值的函数?

时间:2012-03-13 08:06:05

标签: javascript jquery

我有一些单击元素时触发的函数。元素存储在一个数组中。但是触发功能的价值会发生变化。以下是该函数的代码:

// 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;
});

编辑:列表元素存储在数组中,单击列表元素时会触发该函数。例如,如果单击第三个元素,将触发该函数,然后单击第二个元素时它必须工作。

2 个答案:

答案 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;
});


});