动态创建的元素和事件

时间:2014-03-29 15:29:22

标签: javascript jquery

我想知道如何将事件添加到动态创建的元素中。 它适用于第一行,但需要将SplitSelectValue绑定到下一个生成的行。

$('#SelID_').change(function () {
SplitSelectValue($(this));
});

function SplitSelectValue () {
var data =$("#SelID_ option:selected").val();   
var arr = data.split('|');
$("#SelVala_").val(arr[0]);
$("#SelValb_").val(arr[1]);
$("#SelValc_").val(arr[2]);
}

请参阅Jsfiddle

使用两个不同的表格更新了fiddle

2 个答案:

答案 0 :(得分:0)

使用事件 - 委派

$(document).on('change', '#SelID_', function () {
SplitSelectValue($(this));
});

而ID更好地使用类选择器(ID必须在页面上唯一,其他方式 - 生成id dynamicaly)

答案 1 :(得分:0)

你需要的是,

  1. 事件授
  2. 属性以选择器
  3. 开头
  4. 耐心修复错误
  5. 尝试,

    $(document).on('change', '[id^="SelID_"]', function () {
        SplitSelectValue($(this));
    });
    
    function SplitSelectValue(obj) {
        var data = obj.find("option:selected").val();
        var arr = data.split('|');
        var tr = obj.closest('tr');
        tr.find("[id^='SelVala_']").val(arr[0]);
        tr.find("[id^='SelValb_']").val(arr[1]);
        tr.find("[id^='SelValc_']").val(arr[2]);
    }
    

    DEMO