Я новичок в JQuery и тоже не имею большого опыта в Javascript - так что это может способствовать моим проблемам ... Я пытаюсь динамически генерировать список элементов и привязывать события клика к каждомуиз динамически генерируемых элементов.Я могу создать список и успешно связать события щелчка, но затем я наткнулся на камень преткновения.
Мне нужно, чтобы каждое событие щелчка могло обращаться к определенным данным, связанным с элементом, по которому щелкнули.Сначала я просто включил данные в динамическую функцию, которую я создаю при привязке события click.Приведенный ниже код пытается это сделать, но всякий раз, когда я щелкаю элемент в списке, я получаю только окончательное значение моей переменной счетчика (2).
Очевидно, что я неправильно понимаюспособ, которым моя функция щелчка создана.Я прочитал целую кучу статей здесь, на SO, которые могут быть связаны, но я пока не нашел элегантного / правильного способа сделать это.
Моя тестовая страница:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");</script>
<script type="text/javascript">
function generateList() {
var listElement = $('#unsortedList');
var dataArr = new Array();
dataArr["name1"] = "value1";
dataArr["name2"] = "value2";
// Clear any existing HTML
listElement.html('');
var i = 0;
for(item in dataArr) {
listElement.append('<li><div id="item' + i + '">Item ' + i + '</div></li>');
$('#item' + i).click(function() {
alert(i);
$('#item' + i).html("You clicked item " + i);
});
i++;
}
}
$(document).ready(function(e){
generateList();
});
</script>
</head>
<body>
<h1>Test List</h1>
<ul id="unsortedList">
</ul>
</body>
</html>
[EDIT] - Моя конечная цель - использовать значение переменной счетчика для индексации во внешний массив значений.Я знаю, что в примере это выглядит немного несвязным.Когда вы щелкаете элемент, я хочу извлечь индекс в массив, запустить функцию, которая сгенерирует значение, которое я буду использовать для заполнения другого элемента в том же элементе динамического списка.