我的表有问题,它是从函数生成的。
我需要获得点击的 td attr 并运行一些功能。但它不起作用。我的代码有什么问题..?
generate_table.js
function generate_table(data,lnk){
tbl='';
table_stayle=' border=1; cellpadding=0; cellspacing=0;' ;
th_stayle='style="color:#FFFFFF; font-weight:bolder; background-color:#003366" ';
tr_stayle=' bgcolor="#CCCCFF" ';
td_stayle='';
tr_alternate='';
var tbl_body = '';
var tbl_h = '';
$.each(data[0], function(k , v) {
tbl_h=tbl_h + "<td>"+k+"</td>";
})
tbl_h ='<tr align="center" '+th_stayle+'>'+tbl_h+ '</tr>';
//detail
var tbl_body = "";
$.each(data, function() {
var tbl_row = "";
var row_key='';
$.each(this, function(k , v) {
if(k==lnk){
row_key=v;
tbl_row =tbl_row + "<td><a href='javascript:void(0);'>"+v+"</a></td>";//<a href='"+v+"'>
}else{
tbl_row =tbl_row + "<td>"+v+"</td>";
}
})
tbl_body =tbl_body+ '<tr '+tr_stayle+' kode="'+row_key+'" class="tbl_tr" >'+tbl_row + '</tr>';
})
return '<table id="tabel" '+table_stayle+'>'+tbl_h+tbl_body+'</table>';
}
像这样的php代码:
<script language="javascript1.5" src="jquery-1.7.2.min.js"></script>
<script language="javascript1.5" src="generate_tabel.js"></script>
<style>
#div_body {overflow:auto; height:300px;}
</style>
======================================================================<br />
<input type="button" id="btn" name="btn" value="load data">
<div id="div_body" style="overflow:auto;border:solid; border-width:medium; width:400;300">
</div>
<script>
$(function(){
$('#btn').click(function(){
url="getjson.php";
aa=$.getJSON(url , function(data) {
//JSON DATA LIKE THIS:
// aa='[{"Id":"1","wh2":"HandPhone","wh3":"-"},
// {"Id":"2","wh2":"Acessory","wh3":"-"},
// {"Id":"3","wh2":"Batery","wh3":"-"},
// {"Id":"4","wh2":"Chassing","wh3":"-"}]';
$('#div_body').html(generate_table(data,"wh2"));
});
});
// $(".tbl_row").click(function(){
// alert($("tr").attr("kode"));
// //some function
// });
$('#div_body').on('click','.tbl_tr',function(){ alert($(this).attr("kode")); });
});
</script>
和函数处理程序单击:
$(".tbl_tr").click(function(){
alert($("tr").attr("kode"));
//some function
});
是的..提到我改变jquery的答案:
<script language="javascript1.5" src="jquery-1.7.2.min.js"></script>
<script language="javascript1.5" src="generate_tabel.js"></script>
和
$(".tbl_tr").on("click", function(){
alert($(this).attr("kode"));
//some function
});
在 Firefox 错误控制台中没有给出消息。但警报没有运行。
这是我的代码:jsfiddle
已解决:我为模拟编写了简单的代码。
<script src="jquery-1.7.2.min.js"></script>
======================================================================<br />
<input type="button" id="btn" value="OK">
<div id="aaa"><a href=""><span >aaaaaaa</span></a>
</div>
<script>
$('#btn').click(function(){
$('#aaa').html(' <table id="tbl" border=1><tr code="k1" class="ss"><td><a>aaa</a></td></tr><tr code="k2" class="ss"><td><a>bb</a></td></tr><tr code="k3" class="ss"><td><a>cc</a></td></tr></table>');
});
$('#aaa').on('click','#tbl tr a',function(a){
alert($(this).closest('tr').attr('code'));
});
</script>
谢谢你们。我爱你..