将更改事件添加到页面加载后添加的元素

时间:2013-08-18 22:55:25

标签: jquery

我正在使用ajax在div #it_SelectCatLvl2中添加#div_it_SelectCatLvl2元素,我看到当我更改值#it_SelectCatLvl2时,脚本无效。

代码:

$('#it_SelectCatLvl2').change(function() {
    if($(this).val() > 0){
        $('#it_submit').removeAttr("disabled");
    }else{
        $('#it_submit').attr("disabled", "disabled");
    }
});

<div id="div_it_SelectCatLvl2">
    <select class="n_SelectPath" style="" name="it_SelectCatLvl2" id="it_SelectCatLvl2">
        <option value="0">Change</option>
        <option value="1">One</option>
    </select>
</div>

1 个答案:

答案 0 :(得分:1)

使用此:

$('#div_it_SelectCatLvl2').on('change', '#it_SelectCatLvl2', function() {
    $('#it_submit').prop('disabled', !(this.value > 0));
});

出现问题的原因是您将更改事件附加到尚不存在的元素。

我使用的代码是在更改事件冒泡到#div_it_SelectCatLvl2并且由ID为#it_SelectCatLvl2的元素触发时执行的。