我克隆了一张表(带选择)以复制到其他地方。这很好用,我设法改变ID而不用担心。问题是,如果我尝试将更改事件绑定到每个更改事件,它将永远不会触发吗?这里有明显的错误吗?谢谢。
<script type="text/javascript">
$(document).ready(function () {
var variants = $("table.variantselection").clone(false);
variants.find("select").each(function (i, o) {
$(this).attr("id", $(this).attr("id") + "_popup");
});
variants.find("select").change(function () {
alert($(this).val()); // never reaches this alert
});
variants.appendTo("#popup_variants");
});
</script>
答案 0 :(得分:1)
将false更改为true以使用DOM元素
复制事件处理程序var variants = $("table.variantselection").clone(true);
如果失败,请使用live()事件绑定:
variants.find("select").live("change", function () {
alert($(this).val());
});
答案 1 :(得分:0)
在将克隆重新连接到DOM后尝试绑定.change()
函数。
答案 2 :(得分:0)
由于#popup_variants
似乎是您桌面上的父元素,因此最好使用.delegate()
$(document).ready(function(){
$("#popup_variants").delegate("select", "change", function(){
alert($(this).val());
});
var variants = $("table.variantselection").clone(false);
variants.find("select").each(function(i, o) {
$(this).attr("id", $(this).attr("id") + "_popup");
});
variants.appendTo("#popup_variants");
});