提问者:小点点

jQuery.find()不能处理动态添加的元素[duplicate]


我有一个函数可以操纵类名-

function detectInputs() {
    $(".myform").find("input.input-text").filter(function() {
        if( $(this).val().length === 0 ) {
            $(this).closest( "p.form-row" ).removeClass("parent-filled");
            $(this).closest( "p.form-row" ).addClass("parent-empty");
        } else {
            $(this).closest( "p.form-row" ).removeClass("parent-empty");
            $(this).closest( "p.form-row" ).addClass("parent-filled");
        };
    });
}

但它只对加载页面时已经存在的元素起作用。可以动态添加更多p.form-row元素。我知道.on(),但不确定它将与此函数集成在哪里。


共1个答案

匿名用户

在添加新元素“p.form-row”后触发一个事件,并使用“on”绑定事件侦听器,其中的回调将是您的函数“detectinputs”。