Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   События при ajax (https://javascript.ru/forum/misc/71140-sobytiya-pri-ajax.html)

Andreysolomon 28.10.2017 21:08

События при 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 Не сработало :cray:
Подскажите, как сделать чтобы событие сработывало даже при динамическом обновлении страницы (ведь вроде обработчики навешиваются на элемент только один раз) :help:
:) ЗАРАНЕЕ СПАСИБО :)

Luca 29.10.2017 20:02

в 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

итого что-то типа такого должно получиться
$( "#submit1" ).on( "click", function() {
  $.ajax({
  url: "ajax/file1.html",
  cache: false
})
  .done(function( html ) {
    $( "body" ).append( html );
  });
});

laimas 29.10.2017 21:33

Цитата:

Сообщение от Luca
и обработчики ставятся по-другму

Не обязательно так.


Часовой пояс GMT +3, время: 23:02.