Как привязать индексный номер к событию, используя каждую функцию jQuery? - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть функция, которую я хочу выполнить с определенным номером.Это число является динамическим, в зависимости от количества элементов в элементе 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 ]

2 голосов
/ 29 апреля 2011

Вам необходимо объявить локальную переменную в вашем each обратном вызове, используя ключевое слово var.

Прямо сейчас, все ваши обратные вызовы имеют одинаковый itemNum global .

1 голос
/ 29 апреля 2011

Локализуйте переменную itemNum, поставив перед этой строкой itemNum = index + 1; ключевое слово var:

var itemNum = index + 1;

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

...