我将带有输入元素的表行附加到现有表中,如下所示:
$("#additems_table").append(
"<tr><td style='color:#999; font-size:16px;'>"+(counter++)+"</td><td>
<select class='item'><?php while($product_rows=mysql_fetch_assoc($productSQL)){?><option value='<?php echo $product_rows['pid']; ?>'><?php echo $product_rows['name']; ?></option><?php }?></select></td><td id='quantity_td'><input name='quantity' class='quantity' type='text' style='width:35px' id='cost"+(numqty++)+"' /><input type='hidden' name='price_hf' id='cost"+(numprice++)+"'/></td><td id='amount_td'><input name='amount' id='cost"+(numamount++)+"' style='width:70px' type='text' value='3' disabled='disabled'/></td></tr>");
});
当我尝试在上面附加的行中操纵这些元素时出现问题。它根本不听任何事件,点击,更改等,例如
$("#additems_table input[type=text]").each(function(){
$(this).change(function(){
alert("amount");
});
})
我真的很感激帮助。
答案 0 :(得分:1)
好的,连接新的输入元素可以执行以下操作:
$(function(){
$('#additems_table input[type="text"]').live('change', function(){
});
});
这意味着:on load为#additems_table
内的所有元素的change事件创建一个全局处理程序。实时方法可以动态创建新元素(输入文本框),而无需担心其事件注册。新附加元素的change
事件将触发并自动处理。