jquery绑定函数不起作用

jquery bind function doesnt work

本文关键字:不起作用 函数 绑定 jquery      更新时间:2023-12-12

此代码用于使用jQuery的聊天应用程序。fetchMsg方法运行良好。问题出现在入口类文本区域,由于某种原因bind函数不起作用。它不响应任何关键事件。我试过live函数和on函数。问题是在javascript中,还是我应该将textarea标记更改为input-type文本标记?

// delcare new js global object
var chat = {}
chat.entry = $('.chat .entry');
// binding keydown event handler
// THIS PART DOESNT WORK 
chat.entry.bind('keydown', function(e) {
  console.log(e.keyCode);
  if (e.keyCode === 13 && e.shiftKey === false) {
    chat.throwMsg($(this).val());
  }
  e.preventDefault();
});
// fetch msgs method
chat.fetchMsg = function() {
  $.ajax({
    url: 'engine/chat.php',
    type: 'post',
    data: {
      method: 'fetch'
    },
    success: function(data) {
      $('.chat .msgs').html(data);
    }
  });
}
chat.throwMsg = function(msg) {
  if ($.trim(msg).length != 0) {
    $.ajax({
      url: 'engine/chat.php',
      type: 'post',
      data: {
        method: 'throw',
        msg: msg
      },
      success: function(data) {
        chat.fetchMsg();
        chat.entry.val('');
      }
    });
  }
}
chat.interval = setInterval(chat.fetchMsg, 2000);

尝试这个

$(document).ready(funciton(){
$(document).on('keydown', '.chat .entry', function (evt) {
    console.log(e.keyCode);
    if(e.keyCode === 13 && e.shiftKey === false)
    {
        chat.throwMsg($(this).val());
    }
    e.preventDefault();
    });

});