簡體   English   中英

將click事件綁定到td vs table

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM