2017-11-25 102 views
0

嘿我想從生成的html表中獲取數據行,我添加了按鈕到表,我想弄清楚如何添加事件到按鈕中爲了從該行抓取幾個單元格。jQuery的按鈕點擊不生火表中生成的按鈕

我的代碼似乎不工作,我不知道爲什麼。

我試過了這個jsfiddle的例子,但沒有運氣... jsFiddle example 這是我的代碼。

生成表中的行與按鈕:

function buildHtmlTable(CompanyTime) { 
      $("#excelDataTable").empty(); 
      var columns = addAllColumnHeaders(CompanyTime); 

      for (var i = 0; i < CompanyTime.length; i++) { 
       var row$ = $('<tr/>'); 
       if (CompanyTime[i].Company == "KaladiAdmin"){ 

       } 
       else { 

        for (var colIndex = 0; colIndex < columns.length; colIndex++) { 
         var cellValue = CompanyTime[i][columns[colIndex]]; 

         if (cellValue == null) { cellValue = ""; } 

         if (cellValue == true) { 

          row$.append($('<td><input type=\'checkbox\' name=\'Check\' checked=\'yes\'></input></td>')); 
         } 
         else if (cellValue == false) { 
          row$.append($('<td><input type=\'checkbox\' name=\'Check\' ></input></td>')); 
         } 
         else { 
          row$.append($('<td/>').html(cellValue)); 
         } 

        } 
       } 
       if (CompanyTime[i].Company == "KaladiAdmin") { 

       } 
       else { 
        var button = "<button class=\"editButton\" style=\"background-color: #ffa500; color: #ffffff;\" >Update</button>" + 
         "&nbsp;&nbsp;&nbsp;" + 
         "<button id=\"brnDelete\" class=\"btn btn-default btn-sm\" style=\"background-color: #ffa500; color: #ffffff;\">Remove</button>"; 
        //var button = "<button type=\"button\" class=\"close\" data-dismiss=\"modal\">&times;</button>"; 
        row$.append($('<td/>').html(button)); 
       } 

       $("#excelDataTable").append(row$); 
      } 
     } 

按鈕事件:提前

$('button.editButton').click(function() { 
     //var id = $(this).parent().siblings('.CID').text(); 

     console.log("clicked"); 
     //console.log(id); 

    }) 

謝謝!

回答

1

使用事件委託將事件附加到當前的未來(動態生成的)元素。

$('body').on('click','button.editButton',function() { 
     //var id = $(this).parent().siblings('.CID').text(); 
     console.log("clicked"); 
     //console.log(id); 
    }); 
+0

謝謝你這個完美工作,嘗試$( 'button.editButton')上( 「點擊」,函數() ().id().siblings('。CID').text(); console.log(「clicked」); //console.log(id); }),並沒有奏效。 – Rolthar

+0

你是一個救命的人:) – Rolthar

+0

很高興聽到;) – HaukurHaf

0

當你添加動態元素,你應該使用delegation

$(document).on('click', 'button.editButton', function() { 
    // code 
});