Динамически генерируемые функции jQuery перестают работать, когда несколько экземпляров - PullRequest
0 голосов
/ 14 марта 2020

У меня есть приложение чата, которое работает аналогично видеовстречам. Когда вы нажимаете на пользователя, создается чат div. Простая функция, которую я имею, - позволить им нажимать ввод в текстовой области, чтобы отправить текст, что прекрасно работает, но если у меня есть несколько динамически генерируемых функций jQuery, только функция LAST будет работать. Я предполагаю, что это останавливает работу предыдущих экземпляров. Как это исправить?

  • Опять же, когда пользователь запускает чат, он загружает сценарии для этого сеанса чата, потому что я предполагаю, что мне нужен уникальный идентификатор, а не имя класса, чтобы я мог передать Идентификатор базы данных - вероятно, не самый эффективный способ сделать то, что я знаю:

    echo "$('#im-textbox".$receiver_id."').on('keyup', function(event){
    
     if (event.keyCode == 13) {
          //$(this.form).submit()
           var dataset = $('#im-form".$receiver_id."').serialize();
          $.ajax({
              url: 'data/add-chat.php',
              data: dataset,
              method: 'post',
              success: function(data) {
                  console.log(data);
              }
          });
    
          $('#im-textbox".$receiver_id."').val('')
         return false;
    
       }
      });
    ";
    

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 14 марта 2020

Я исправил это с помощью ...

$(document).on('keyup', '#im-textbox".$receiver_id."', function(event){
  if (event.keyCode == 13) {
          //$(this.form).submit()
           var dataset = $('#im-form".$receiver_id."').serialize();
          $.ajax({
              url: 'https://easyrepair.us/manage/data/add-chat.php',
              data: dataset,
              method: 'post',
              success: function(data) {
                  console.log(data);
              }
          });

          $('#im-textbox".$receiver_id."').val('')
         return false;

       }
  });
...