【发布时间】:2011-03-14 01:27:18
【问题描述】:
我是 JQuery 新手,在 Javascript 方面也没有丰富的背景 - 所以这可能会导致我的问题...我正在尝试动态生成项目列表并将点击事件绑定到每个项目动态生成的元素。我可以创建列表并成功绑定点击事件,但是我遇到了一个绊脚石。
我需要能够让每个点击事件访问与被点击的项目相关联的特定数据。我最初只是将数据包含在我绑定点击事件时创建的动态函数中。下面的代码尝试执行此操作,但每当我单击列表中的一个元素时,我只能获得计数器变量 (2) 的 final 值。
显然我误解了我的点击功能的创建方式。我已经在 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>
[编辑] - 我的最终目标是使用计数器变量值来索引外部值数组。我知道这个例子似乎有点脱节。当您单击该项目时,我想将索引拉出到数组中,运行一个函数,该函数将生成一个值,我将使用该值填充同一动态列表项中的另一个元素。
【问题讨论】:
标签: javascript jquery dynamic dhtml