2013-02-25 52 views
0

鉴于this fiddle什么是阻止HTML呈现?用jquery写动态html

的JavaScript

$(document).ready(function(){ 
    function loadDiv(divId) { 
     $('#' + divId).html('<table><tr><td class="editable" id="' + divId + '">Edit Me</td></tr></table>'); 
    } 

    $('td.editable').click(function() { 
     var cellId = $('td.editable').attr('id'); 
     alert(cellId); 
    }); 

    loadDiv(div1); 
    loadDiv(div2); 
}); 

我的目的是点击的细胞从它变成一个输入字段和后面的文章,但我不知道为什么它不渲染。

+0

DIV1和DIV2两个是变量......把他们周围的报价。 – 2013-02-25 20:42:31

回答

3

您需要在您的div id周围添加引号。

loadDiv("div1"); 
loadDiv("div2"); 

http://jsfiddle.net/pp6nv/1/

由于表在页面加载后加入,你将不得不使用.on()

$('body').on("click", "td.editable", function() { 
    var cellId = $(this).prop('id'); 
    alert(cellId); 
}); 

http://jsfiddle.net/pp6nv/3/

+0

感叹。感谢那。它必须发生什么才能被'click'函数捕获? – Kermit 2013-02-25 20:45:13

+0

您必须使用'.on()' - 查看我的更新。 – jrummell 2013-02-25 20:49:53

+0

美丽。干杯 – Kermit 2013-02-25 20:50:45