表单元格内span或td的单击事件处理程序不起作用
click event handler for span or td inside a table cell does not work
加载页面时,我正在填充一个表。我的行创建如下:
$.each(datax, function() {
$.each(this, function(kx , vx) {
tbl_row += '<td><p id="' +'^'+$key1+':'+$keyval1 +'^'+$key2+':'+$keyval2 +'^'+$key3+':'+$keyval3 +'^'+$key4+':'+$keyval4 +'^'+$key5+':'+$keyval5+ '$$'+kx+':'+vx+ '">'+vx+'</p></td>';
tbl_labels += "<th>"+kx+"</th>";
})
tbl_body += "<tr>"+tbl_row+"</tr>";
tbl_head = "<tr>"+tbl_labels+"</tr>";
})
$("#table_results thead").html(tbl_head);
$("#table_results tbody").html(tbl_body);
$("#table_results").table("refresh");
到目前为止运行良好。问题是,我想处理表单元格的单击事件。我试着把span和p放在单元格里,但下面的处理程序不起的作用
$("p").click(function (){
alert('handler for click p worked');
});
$("span").click(function (){
alert('handler for click span worked');
});
我做错了什么?
试试这个代码:
$(document).on('click', 'p', function (){
alert('handler for click p worked');
});
$(document).on('click', 'span', function (){
alert('handler for click span worked');
});
它使用on方法来检测通常创建的元素上的事件。
您需要在这里使用事件委派,因为元素是动态添加的
$("#table_results").on('click', 'span', function(){
alert('handler for click span worked');
})
$("#table_results").on('click', 'p', function(){
alert('handler for click p worked');
})
检查下面的代码(提醒单元格文本):
$("#tbl tbody").find("p").on("click",function (){
alert($(this).text());
});
工作示例:http://jsfiddle.net/kQpfE/
您可以在DOM准备好后创建的元素上绑定事件。您需要从DOM就绪后未生成的父DOM元素绑定它们。
所以你应该做一些类似的事情:
$("#table_results tbody").find('span').click(function (){
alert('handler for click span worked');
});
相关文章:
- 复选框,然后单击事件处理
- GAS 单击事件处理程序导致 UI Web 应用中出现“意外错误”
- 递归添加单击事件处理程序
- 单击事件执行单击和悬停事件处理程序,即使单击事件处理程序取消绑定所有处理程序也是如此
- 单击的元素的 grab 属性 - 使用单击事件处理程序
- AmStockCharts - 单击事件处理程序
- 复选框单击事件处理程序和显示/隐藏功能
- 模式弹出窗口无法正常工作,它多次调用函数 - 单击事件处理程序运行多次
- jQuery on() 单击事件处理程序不起作用
- 主干/车把/引导设置中的按钮单击事件处理
- 附加到 dom 元素的 jQuery 单击事件处理程序
- 如何在鼠标悬停事件处理程序中创建单击事件处理程序
- 触发单个单击事件时触发的所有单击事件处理程序
- 如何运行element's单击事件处理程序
- 使用单击事件处理程序的 JQuery.如何防止所有元素不显示一次只显示一个元素
- 表单元格内span或td的单击事件处理程序不起作用
- 单击事件处理程序中的XMLHttpRequest状态为0
- JavaScript单击事件处理
- 在运行时HTML元素上调用单击事件处理程序
- 在一段时间内禁用单击事件处理程序