如何向每个元素添加单击事件侦听器
How to add click event listener to each elements?
我使用query来构建一个移动应用程序。首先我使用$。getJSON从json文件检索数据:
$.getJSON('js/sura.json', function(data){
$.each(data, function(key, value){
//alert(key+' '+value['id']);
buildList(value['id'], value['name'], value['number']);
});
});
json文件中有超过100行。
之后,我需要将每个列表放入一个元素名称<ul id="list></ul>
。我是否应该创建一个新的Javascript函数,然后编写以下代码:
function buildList(id, name, number){
var name_elm = '<h3>'+name+'</h3>';
var noq_elm = '<span>'+number+'</span>';
var $list_elm = '<li>'+name_elm+''+noq_elm+'</li>';
$('#list').append($list_elm);
}
在我使用.append(...)
之后。我想添加单击侦听器到每个列表(每个列表有唯一的id)。
如何为每个<li></li>
添加监听器?
您可以使用事件委托:
var $list_elm = '<li class="noqele">'+name_elm+''+noq_elm+'</li>';
$('#list').append($list_elm);
}
和点击事件代码:
$(document).on('click','.noqele',function(){
//click event code...
});
这样做会更有效率
$.getJSON('js/sura.json', function (data) {
var container = $();
$.each(data, function (key, value) {
var h3 = $('<h3 />', {text : value.name}),
span = $('<span />', {text : value.number}),
li = $('<li />', {
id: value.id,
on: {
click: click_function
}
});
container = container.add(li.append(h3, span));
});
$('#list').append(container);
});
function click_function() {
// do stuff on click
}
相关文章:
- Jquery在表WITH函数中追加新行后添加单击事件
- 添加/单击c#asp.netmvc5后禁用和更改按钮图标
- 递归添加单击事件处理程序
- 在动态创建的按钮上添加单击事件,这些按钮在单击时更改模式 h4 文本
- 为动态创建的列表项及其内容添加单击操作
- 向动态创建的表中的单元格添加单击函数 - JavaScript
- 向图像添加单击或按钮
- 如何使用单击方法在元素内部添加单击方法
- 如何添加单击事件以将您带到幻灯片上的某个图像
- 添加单击侦听器以循环列出项目
- 向动态生成的内容添加单击处理程序.如何去做
- JqPlot在数据点上添加单击事件
- 向所有元素添加单击事件侦听器- Firefox插件
- 如何在条形图中添加单击事件
- 创建动态按钮时出现错误,以及如何在不使用id的情况下动态添加单击事件
- 向加载的KML中的标记添加单击事件
- 为动态创建的下拉列表添加单击功能
- 无法在动态创建的锚标记上添加单击事件
- 如何向每个元素添加单击事件侦听器
- 如何使用Dojo向表行添加单击事件