我正在尝试添加删除按钮,但不幸的是,从addRow函数中填充的已删除按钮不起作用。我不知道我错过了什么.
<script type="text/javascript">
$(document).ready(function() {
$('.deleteRowButton').click(DeleteRow);
});
function DeleteRow(){
$(this).closest('tr').remove();
}
$(function () {
//$("#addRow").click(function ()
$(document).on("click", "#addRow", function(){
$('#container tr:last').after('<tr>'n'
<td><select name="materialID[]" ><option value="0">Select A Material</option><?php echo str_replace("'", "'''", $options); ?></select></td>'n'
<td>Quantity: <input type="text" name="qty[]" /></td>'n'
<td><select name="SupplierID[]" ><option value="0">Select A Supplier</option><?php echo str_replace("'", "'''", $options2); ?></select></td>'n'
<td><button class="deleteRowButton" type="button">Remove</button></td>'n'n'
</tr>');
});
});
</script>
使用 jQuery 的 DeleteRow 函数的初始赋值是针对当时页面上的所有内容运行的。 添加新行时,赋值尚未添加到该特定(新)元素,因为它以前从未存在过。
为了使它工作,您需要添加一个单击事件,或者重新运行jQuery以将该事件添加到.deleteRowButton类中,以便所有新类都具有它。
当您以动态方式添加 html 时,该事件不会位于添加的按钮中,因为当文档准备就绪时,这些事件已附加到页面上的按钮中,并且不会附加到新按钮上。
试试这个:
$(document).ready(function() {
$(document).on('click', '.deleteRowButton', function () {
$(this).closest('tr').remove();
}
}
试一试,让我知道它是否有帮助!