当用户单击按钮写评论时,我有一个带有评论系统的网站,我在文档中附加了文本区域,以便他写评论并保存。
我想向此textarea添加一个charachters计数器,但是当添加jQuery代码时,没有任何反应,它使我对任何键盘输入或键盘输入均无响应。
我的代码是:

$(document).ready(function(){
        var limitnum = 120; // set your int limit for max number of characters
    $('.comment_area').keyup(function(){alert('test');
      limits($(this), limitnum);
    });
});


附加的textarea代码:

$("#section_bar").after('<p id="counter"><span>0</span> characters</p><textarea rows="4" cols="50"  id="" class="comment_area" name="reply_area" ></textarea><a class="comment button small black" href="#!" id="reply_'+match_id+'"><span>save comment</span></a>');


我想知道为什么keyup或keyes oes不起作用是因为它与创建和加载DOM时我没有textarea有关(因为我在那之后附加了它)?

最佳答案

您需要使用事件委托,因为您不能以这种方式将事件处理程序附加到最初呈现DOM时不存在的元素上。

您可以这样做,就像这样:

$('#section_bar').on('keyup','.comment_area',function() {
  // Code here
});


这应该有所帮助:Understanding Event Delegation

关于javascript - 按键和按键不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22857173/

10-13 04:17