如何使用jQuery的每个函数将索引号绑定到事件?

时间:2011-04-29 02:30:04

标签: jquery dynamic binding each

我有一个我想用特定号码执行的功能。该数字是动态的,具体取决于 ul 元素中的元素数量。在这个例子中,假设有10个 li 元素。

function alertThisNum(itemNum) {
    alert(itemNum);
}

$('ul li').each(function(index) {
    itemNum = index + 1;
    $("a#" + itemNum).bind("click", function() {
        alertThisNum(itemNum);
    });
});

问题是, itemNum 始终是最后一个数字。它将数字10绑定到所有链接。

如何让 a.1 提醒“1”, a.2 提醒“2”,依此类推?

2 个答案:

答案 0 :(得分:2)

您需要使用each关键字在var回调中声明本地变量。

目前,您的所有回调都是共享相同的itemNum 全球

答案 1 :(得分:1)

使用itemNum关键字在此行itemNum = index + 1;之前将var变量本地化:

var itemNum = index + 1;

http://jsfiddle.net/JAAulde/FnSmA/