我正在使用jquery 1.10.1。
我有一张最初没有出现在页面上的表格。当用户从下拉框中选择某些内容时,将使用ajax调用呈现该表。这是查询。该表在此时呈现。循环正在运行,表正在渲染。
var output = '<table id="slots" class="table table-striped table-bordered table-condensed table-hover">';
output += '<thead>';
output += '<tr>';
output += '<th>Select</th>';
output += '<th>Date</th>';
output += '<th>Time</th>';
output += '<th>Room</th>';
output += '</tr>';
output += '</thead>';
output += '<tbody>';
$(result).find("RESULTS").each(function() {
//loop through each row
var room = $(this).find('room').text();
var id = $(this).find('id').text();
var date = $(this).find('aDate').text();
var time = $(this).find('aTime').text();
output += "<tr><td class=id>" + id + "</td><td>" + date + "</td><td>" + time + "</td><td>" + room + "</td></tr>";
}); // of each function
到目前为止一直很好......
现在点击了一下。我正在做婴儿步骤......这甚至都不起作用......它在主人内部(“文件”)。准备好了(函数()。我想知道这是问题的一部分,因为#slots是当它首次渲染时不在DOM中。我在这里没有收到警报。它似乎没有找到或绑定了“点击”功能。我从另一个帖子中找到了这个片段。
$('#slots').find('tr').click( function(){
alert('You clicked row '+ ($(this).index()+1) );
});
最终我想从所选行中获取id,日期,时间和房间的值,并使用它做更多的事情。任何帮助,将不胜感激。我是新来的。
答案 0 :(得分:0)
您需要使用.on()
's delegated event syntax代替click()
。
$(document).on('click', '#slots tr', function(){
alert('You clicked row '+ ($(this).index()+1) );
});
答案 1 :(得分:0)
您需要委派事件,因为它不是在初始DOM加载
中创建的$(document).on('click', '#slots tr', function(){
alert('You clicked row '+ ($(this).index()+1) );
});