Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 响应新DOM的函数_Javascript_Ajax_Jquery_Dom - Fatal编程技术网

Javascript 响应新DOM的函数

Javascript 响应新DOM的函数,javascript,ajax,jquery,dom,Javascript,Ajax,Jquery,Dom,我有以下功能,可以计算用户在文本区域中输入的剩余字符数: $("textarea").keyup(function() { var max = 500; var length = $(this).val().length; var char = max - length; if (length > max) { $(this).parent().find('.counter span').html('<div class="text-e

我有以下功能,可以计算用户在文本区域中输入的剩余字符数:

$("textarea").keyup(function() {
    var max = 500;
    var length = $(this).val().length;
    var char = max - length;
    if (length > max) {
        $(this).parent().find('.counter span').html('<div class="text-error">' + char + '</div>');
    } else {
        $(this).parent().find('.counter span').text(char);
    }
});
$(“textarea”).keyup(函数(){
var max=500;
var length=$(this).val().length;
var char=最大长度;
如果(长度>最大值){
$(this.parent().find('.counter span').html(''+char+'');
}否则{
$(this.parent().find('.counter span').text(char);
}
});
如果我在页面中引入一个新的DOM,那么上面的函数对新引入的textarea不起作用。如何使其与新的DOM一起工作


谢谢。

您需要jQuery中的
on
函数

$(“body”)。在(“keyup”,“textarea”,function(){…


MattDiamant的回答对您的情况很好,但我只想补充一下复制粘贴的情况

如果用户仅使用鼠标(右键单击->粘贴)从另一个word文档复制并粘贴到keyarea中,则不会触发keyup

因此,除了“keyup”之外,我建议您添加事件“input”、“propertychange”,这样您的
on
函数将是:


$(“body”)。在('keyup-input-propertychange','textarea',function(){…});

DOM是整个文档模型,您谈论的是DOM元素。仅供将来参考:)阅读事件委派,这里会问这个问题。具体阅读直接和委派事件