我使用JQuery根据用户插入创建动态表行。
我的HTML:
<table id="list">
<thead>
<tr>
<th>first header</th>
<th>second header</th>
<th>third header</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="first" /></td>
<td><input type="text" name="second" id="second" /></td>
<td><button class="alert hollow button" href="#">X</button> </td>
</tr>
</tbody>
</table>
和JavaScript:
$('#list tr:last td:nth-last-child(2) input[name=second]').keyup(function (event) {
if ($(this).val().length > 4 && $('#list tr:last td:nth-last-child(2) input[name=second]').val().length > 4) {
$('#list tbody').append('<tr>
<td><input type="text" name="first" /></td>
<td><input type="text" name="second" id="second" /></td>
<td><button class="alert hollow button" href="#">X</button></td>
</tr>');
}
});
上面的代码仅适用于第一行,插入的行没有JS代码隐藏。
答案 0 :(得分:2)
您还没有给出完整的代码,但我怀疑这是您的问题..
替换此
OnMouseDown
用这个
$('#list tr:last td:nth-last-child(2) input[name=second]').keyup(function (event)
您可能没有使用正确的事件委派,并且您正试图在尚未存在的元素上绑定$('#list').on('keyup', 'tr:last td:nth-last-child(2) input[name=second]', function (event)
事件(您说动态添加了行)。相反,我们将keyup绑定到作为初始文档一部分的表,并说明当满足X条件的子项触发了keyup事件时发生的事情
答案 1 :(得分:1)
您的功能不会绑定到页面加载时不存在的元素,使用 aFlightList = aFlightList.Where(f => airlines.Any(a => a == f.AirCoNam1))
.ToArray();
来生成动态元素
on