js动态添加一行表格时,怎么给td加onclick事件?

$("#msgTable").append("<tr><td>"+en.name+"</td><td onclick='poppage(this)'>"+en.type+"</td><td>"+en.desc+"</td></tr>");
这样写没有用,不能点击,到底哪里错了啊
function poppage(type){
window.open("pop?type=type");
}

poppage写到外面就可以访问了

<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8 />
<title>JS</title>
<style type="text/css">
</style>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script>
$ (function ()
    {
    var en =
    {
        name : 1,
        type : 2,
        desc : 3
    };
    $ ("#msgTable").append ("<tr><td>" + en.name + "</td><td onclick='poppage(this)'>" + en.type + "</td><td>" + en.desc + "</td></tr>");
    });
    
    function poppage (type)
    {
    window.open ("pop?type=type");
    }
</script>
</head>
<body>
<table id="msgTable">
</table>
</body>
</html>

追问

poppage()我是写在ajax外面的,现在情况是这样的
ajax里面$("#msgTable").append()
js下有function poppage()
但是onclick没有反应,把他放在里面也没有用,给td弄个id,然后id.onclick也没有用

追答

可是我这个可以点击的

追问

用this可以点击了,但是我想用en.type做poppage()的 参数,点击了没用啊
而且就算能点击,可以让他像链接一样有可点击的字体效果吗,他现在就和不能点击的文字看上去一样啊

追答function poppage (obj)
{
    obj.style.fontSize = '24px';
    window.open ("pop?type=" + obj.innerText);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-10

这个代码应该这样写:

var td1 = $("<td>"+en.name+"</td>");
var td2 = $("<td>"+en.type+"</td>");
    td2.data("myType", en.type); // 保存数据
    // 绑定事件
    td2.click(function(){
        window.open("pop?type=" + $(this).data("myType"));
    });
var td3 = $("<td>"+en.desc+"</td>");
var tr = $("<tr></tr>");
tr.append(td1);
tr.append(td2);
tr.append(td3);
$("#msgTable").append(tr);

第2个回答  2014-11-10
msgTable是什么东西?可以贴完整点代码吗?追问

  function poppage(type){
  window.open("pop?type=type");
  }

  
  名称属性说明
  
  
  

相似回答