您好我有一个ajax功能,从服务器端获取数据并添加附加到表行
var str =$(".note-list");
$.ajax({
type: "GET",
url: "abc.htm",
success: function(msg){
var s="<tr class='fc-staff'>";
alert("success"+str);
$.each( msg, function(i,value ) {
s=s+"<td class='fc-widget-content fc-first'>"+value+"<i
class='icon-remove'></i></td> ";
});
s=s+"</tr>";
str.html(s);
$("#popup").show();
},
error : function(e) {
alert('Error: ' + e);
}
});
});
对于从上面添加jquery点击功能无效的td。 注意。它适用于其他表中的其他td
我的jquery函数
$("td").click(function() {
alert("tdclicked"); // Its not working
alert($(this).text());
});
FUI,
即使在视图页面源中也没有显示附加的源,但在UI中它即将到来
我的网页来源是
<table class="fc-border-separate note-list" style="width: 100%"
cellspacing="0">
// Not showing appended td
</table>
帮助我让jquery函数适用于这个附加的td。
提前致谢
答案 0 :(得分:3)
在加载DOM之后附加td
元素时,需要使用委托事件处理程序。试试这个:
$(".note-list").on('click', 'td', function() {
alert("tdclicked"); // Its not working
alert($(this).text());
});
答案 1 :(得分:1)
试试这个
$("table").on('click', 'td', function() {
alert($(this).text());
});
您在加载页面后添加元素,因此您必须委派click
事件。
了解更多信息,请查看文档http://api.jquery.com/on/
上的jquery希望这会有所帮助
答案 2 :(得分:0)
您正在访问str = $('.notelist')
,就好像它是唯一的元素一样。您需要循环所有具有此类的表。
答案 3 :(得分:0)
$(document).on("click", "#yourTableID td" , function() {
doStuff();
});