更改事件未触发

时间:2011-04-28 12:20:50

标签: jquery onchange

我克隆了一张表(带选择)以复制到其他地方。这很好用,我设法改变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>

3 个答案:

答案 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");

});