jQuery новая версия несовместимого скрипта

Я новичок. Следующий скрипт отлично работает со старыми версиями jQuery, но не совместим с jquery-3.3.1. Помогите мне, пожалуйста..

<script type="text/javascript">
$(document).ready(function() {
  $('#results-text').fadeOut();
  function search() {
    var query_value = $('input#search').val();
    $('b#search-string').html(query_value);
    if(query_value !== ''){
      $.ajax({
        type: "POST",
        url: "search.php",
        data: { query: query_value },
        cache: false,
        success: function(html){
          $("table#results").html(html);
        }
      });
    }return false;    
  }
  $("input#search").live("keyup", function(e) {
    clearTimeout($.data(this, 'timer'));
    var search_string = $(this).val();
    if (search_string == '') {
      $('#results-text').fadeOut();
    }else{
      $('#results-text').fadeIn();
      $(this).data('timer', setTimeout(search, 100));
    };
  });
});
</script>

person user2444417    schedule 01.02.2018    source источник


Ответы (3)


jQuery .live() был удален в версии 1.9 и выше.

Используйте on вместо live

Пример:-

  <script type="text/javascript">
    $(document).ready(function() {
      $('#results-text').fadeOut();
      function search() {
        var query_value = $('input#search').val();
        $('b#search-string').html(query_value);
        if(query_value !== ''){
          $.ajax({
            type: "POST",
            url: "search.php",
            data: { query: query_value },
            cache: false,
            success: function(html){
              $("table#results").html(html);
            }
          });
        }return false;    
      }
      $("input#search").on("keyup", function(e) { //changed on instead of live
        clearTimeout($.data(this, 'timer'));
        var search_string = $(this).val();
        if (search_string == '') {
          $('#results-text').fadeOut();
        }else{
          $('#results-text').fadeIn();
          $(this).data('timer', setTimeout(search, 100));
        };
      });
    });
    </script>
person Ayatullah Rahmani    schedule 01.02.2018

проверить это

<script type="text/javascript">
    $(document).ready(function() {
      $('#results-text').fadeOut();
    });

    function search() {
        var query_value = $('input#search').val();
        $('b#search-string').html(query_value);
        if(query_value !== ''){
          $.ajax({
            type: "POST",
            url: "search.php",
            data: { query: query_value },
            cache: false,
            success: function(html){
              $("table#results").html(html);
            }
          });
        }return false;    
      }
      $("input#search").on("keyup", function(e) {
        clearTimeout($.data(this, 'timer'));
        var search_string = $(this).val();
        if (search_string == '') {
          $('#results-text').fadeOut();
        }else{
          $('#results-text').fadeIn();
          $(this).data('timer', setTimeout(search, 100));
        };
      });
    </script>
person Raveendra    schedule 01.02.2018

Если «функция поиска» не вызывается, это ваша проблема, оставьте функцию в глобальной области видимости, то есть вне блока $(document).ready.

person Jay    schedule 01.02.2018