Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2017, 21:08
Аспирант
Отправить личное сообщение для Andreysolomon Посмотреть профиль Найти все сообщения от Andreysolomon
 
Регистрация: 21.10.2016
Сообщений: 34

События при ajax
у меня данные на сайте меняются через ajax, так вот, все события я описал в одном файле - js.js, его содержимое:
$("#submit").click(function(){

    $.ajax({
      url: 'ajax/file1.html',
      success: function(data){
        $(body).html(data);
      }
    });

$("#submit2").click(function(){

    $.ajax({
      url: 'ajax/file2.html',
      success: function(data){
        $(body).html(data);
      }
    });

});

и допустим начальное содержимое страницы такое:
<input type="text" id="textfield"><input type="submit" id="submit">

юзер ввел что-то там в поле #textfield, нажал на кнопку #submit и пришел совершенно другой html (на ajax!):
<input type="text" id="textfield2"><input type="submit" id="submit2">

юзер тоже чет ввел и нажал на #submit2, и событие $("#submit2").click Не сработало
Подскажите, как сделать чтобы событие сработывало даже при динамическом обновлении страницы (ведь вроде обработчики навешиваются на элемент только один раз)
ЗАРАНЕЕ СПАСИБО
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2017, 20:02
Аспирант
Отправить личное сообщение для Luca Посмотреть профиль Найти все сообщения от Luca
 
Регистрация: 20.06.2017
Сообщений: 69

в jQuery не силён, но что сразу бросается
$(body).html(data);

надо body в кавычки взять
$.ajax({
  url: "ajax/file1.html",
  cache: false
})
  .done(function( html ) {
    $( "body" ).append( html );
  });

и обработчики ставятся по-другму
пример из документации
$( "#dataTable tbody tr" ).on( "click", function() {
  console.log( $( this ).text() );
});

Последний раз редактировалось Luca, 29.10.2017 в 20:04.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2017, 20:04
Аспирант
Отправить личное сообщение для Luca Посмотреть профиль Найти все сообщения от Luca
 
Регистрация: 20.06.2017
Сообщений: 69

итого что-то типа такого должно получиться
$( "#submit1" ).on( "click", function() {
  $.ajax({
  url: "ajax/file1.html",
  cache: false
})
  .done(function( html ) {
    $( "body" ).append( html );
  });
});
Ответить с цитированием
  #4 (permalink)  
Старый 29.10.2017, 21:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Luca
и обработчики ставятся по-другму
Не обязательно так.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать перезагрузку скриптов/функций при подгрузке контента с помощью AJAX? yii2 jQuery 2 27.09.2017 19:48
ajax не происходит назначенного события при изменения DOM topolev AJAX и COMET 2 10.12.2014 07:59
События при изменении содержимого input sean88 jQuery 2 17.09.2014 16:42
После события checked запустить ajax, выходит: Сначала ajax потом checked??? Андрей Лебедев Элементы интерфейса 0 09.02.2013 13:07
Не выводится результат MySQL (при использовании AJAX) iBars AJAX и COMET 1 17.12.2012 09:13