[英]Binding click event to td vs table
我想在HTML中构建类似于实用程序的excel。 假设我的表[id“myTbl”]有20行和20列。 每当用户点击td文本作为其值时,我想在td中添加文本框。
假设我的桌子是
我有2个选项来实现这一点[两者都工作正常]
选项一
$("#myTbl").bind("click",function(e){
var obj = e.target;
if(obj.nodeName == "TD"){
$(obj).html("<input type='text' value='"+$(obj).html()+"'></input>");
}
});
备选方案二
$("#myTbl tr td").bind("click",function(e){
if($("input",$(this)).length==0){
$(this).html("<input type='text' value='"+$(this).html()+"'></input>");
}
});
我的问题是哪个选项在性能方面更好。
您的两个选项中的第一个将只创建一个事件处理程序,因此它将更高效。 通过事件获取目标的成本可以忽略不计。
要以“jQuery”方式执行此操作,您可能需要使用delegate
:
$("#myTbl").delegate("td", "click", function() {
var $this = $(this);
$this.html("<input type='text' value='"+$this.text()+"'></input>");
});
我会说将它绑定到表上要好得多,因为你没有额外的开销来维护每个单元的所有点击处理程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.