2013-11-21 147 views
0

我有一個函數,它將一些json數據放到一個表中。我試圖將點擊事件綁定到某些表格元素。在這種情況下,表格有兩列'飲料名稱'和'飲料類型'。我希望兩列有不同的事件,所以我試圖給他們類標籤,以便我可以將事件綁定到給定的類。如何將點擊事件綁定到動態創建的TD?

包裝在**中的行是我想要做的僞代碼。我試過看一堆東西,不能完全弄清楚這一點......謝謝!

function totable(data){ 
       var d = document.getElementById("drinkList"); 
       d.setAttribute("class","panel panel-default"); 
       var dd = document.createElement("div"); 
       dd.setAttribute("class","panel-heading"); 
       dd.appendChild(document.createTextNode("Drink list")); 
       d.appendChild(dd); 
       var mytable = document.createElement("table"); 
       mytable.setAttribute("class","table"); 
       var thr = document.createElement("tr"); 
       for(var key in data[0]){ 
        var th = document.createElement("th"); 
        th.appendChild(document.createTextNode(key)); 
        thr.appendChild(th); 
       } 
       mytable.appendChild(thr); 
       for(var i=0;i<data.length;i++){ 
        var r = document.createElement("tr"); 
        for(var key in data[i]){ 
         var td = document.createElement("td"); 
         **td.setClassName("drinkEntry");** 
         td.appendChild(document.createTextNode(data[i][key])); 
         r.appendChild(td); 
        } 
        mytable.appendChild(r); 
       } 
       d.appendChild(mytable); 
       **$("#drinkEntry").on("click", viewDrink);** 
      } 
+0

你有沒有對此做過一些研究?你可以嘗試'谷歌搜索'有很多答案解釋這一點。僅在SO上,您可以通過搜索「jquery bind event to dynamic created element」來獲得50多個匹配結果。 –

+1

是你的工作? –

回答

1

更換**td.setClassName("drinkEntry");**$(td).click(viewDrink);

0

試試這個

$('body').on('click','#drinkEntry',function(){ 

//Your Codes 

}); 
1

你可以使用方法.on()document的事件,而不是直接綁定到類(沒有ID),因爲實例不存在
試試這個:

$(document).on("click",".drinkEntry", function(){ 

}); 
0

將事件綁定到動態創建您必須使用.on() jQuery函數。

在你的情況應該是這樣的:

$('#drinkEntry').on("click", function() { 
    //logic 
}); 
相關問題