JQUERY 1.9,1.10,1.11与代码冲突

时间:2014-02-16 15:33:30

标签: javascript php jquery

我有这段代码,如果我将JQUERY链接到1.8.0之上,则无效 只是为了好奇,为什么会发生这种情况? 它从选择框中获取值,传递给pagination.php文件,同时显示加载图像 //分页

       $(document).ready(function () {
       function loading_show() {
           $('#loading').html("<img src='img/loading.gif'/>").fadeIn('fast');
       }

       function loading_hide() {
           $('#loading').fadeOut('fast');
       }

       function loadData(page) {
           var house_id = $("#pbthouse option:selected").val();
           var sale_id = $("#pbtsale option:selected").val();
           var year_id = $("#pbtsale option:selected").val();
           var ipp = $("#res option:selected").val();
           loading_show();
           $.ajax({
               type: "POST",
               url: "pagination.php",
               //data: "page="+page,
               data: {
                   page: page,
                   house_id: house_id,
                   year_id: year_id,
                   sale_id: sale_id,
                   ipp: ipp
               },
               success: function (msg) {
                   $("#container1").ajaxComplete(function 
                 (event, request,settings) 
              {
                       loading_hide();
                       $("#container1").html(msg);
                   });
               }
           });
       }
       loadData(1); // For first time page load default results
       $('#container1 .pagination li.active').live('click', function () {
           var page = $(this).attr('p');
           loadData(page);
       });
       $('#go_btn').live('click', function () {
           var page = parseInt($('.goto').val());
           var no_of_pages = parseInt($('.total').attr('a'));
           if (page != 0 && page <= no_of_pages) {
               loadData(page);
           } else {
               alert('Enter a PAGE between 1 and ' + no_of_pages);
               $('.goto').val("").focus();
               return false;
           }
       });
       $('#container1 .pagination    li.active').live('click', function () {
           var page = $(this).attr('p');
           loadData(page);
       });
       $("#pbthouses").change(function () {
           var page = '1';
           loadData(page);
       });
       $("#res").change(function () {
           var page = '1';
           loadData(page);
       });
       $('#pbtsale, #pbtyear').change(function () {
           var sale_id = $("#pbtsale option:selected").val();
           var sale_id = $("#pbtyear option:selected").val();
           var page = '1';
           if (sale_id != '') {
               $.ajax({
                   type: "POST",
                   url: "get_pbtsales.php",
                   data: {
                       year_id: year_id,
                       sale_id: sale_id
                   },
                   success: function (option) {
                       $("#pbhouses").html(option);
                       loadData(page);
                   }
               });
           } else {
               $("#pbhouses").html("<option value=''
>-- No category selected --</option>");
           }
           return false;
       });
   });

1 个答案:

答案 0 :(得分:4)

自版本1.7以来,已弃用对.live()的支持,自版本1.9以来已删除。您应该切换到.on()的动态形式,这将改变:

$('#go_btn').live('click', function () {

到此:

$(document).on('click', '#go_btn', function () {

理想情况下,您会选择一个更接近父$(document)的父项(而不是动态创建),而不是#go_btn,因为这比使用$(document)更有效,特别是如果您有这样的委托事件处理程序。

使用.on()委派事件处理的一些参考:

jQuery .live() vs .on() method for adding a click event after loading dynamic html

Should all jquery events be bound to $(document)?

Does jQuery.on() work for elements that are added after the event handler is created?