2013-02-10 68 views
1

我下面search-sort-using-ajax.live是不是在轨3.2.11

这里我的Gemfile包括

  • 轨3.2.11
  • 的sqlite-3
  • 意志PAGINATE功能错误, '3.0'
  • jQuery的导轨, '2.2.1'

周的application.js文件包括

// =要求的jquery

// =需要jquery_ujs中的application.js

脚本

$(function() { 
    $('#products th a').live('click', function() { 
    $.getScript(this.href); 
    return false; 
}); 
}) 

错误控制台

越来越
$("#products th a").live is not a function 

我搜查,但我没有找到任何解决方案。谁能帮助我,我在这里做什么实际的错误

谢谢

+0

由于'活()'已被弃用,去除的jQuery 1.9,你或许应该使用'在()'。 – 2013-02-10 11:31:45

+1

这 – adeneo 2013-02-10 11:32:35

+0

为什么标记栏杆? – rds 2013-02-10 15:45:42

回答

4

我的猜测是,你正在使用jQuery 1.9,可以除去live(它已经被废弃了好几个版本之后)。你可以得到同样的效果live这样做:

$(function() { 
    $(document).on('click', '#products th a', function() { 
     $.getScript(this.href); 
     return false; 
    }); 
}); 

...它的附加处理clickdocument但只触发它,如果点击开始或通过元素起泡选择#products th a匹配(这是什么live)。

live被弃用,是有原因的(他们夫妇,实际上)去除,其中之一是,它几乎从来没有最好把click处理程序一路下来document(虽然它可以在非常罕见的情况)。除非你删除并重新创建products元素,例如,你可能会想:

$(function() { 
    $('#products').on('click', 'th a', function() { 
     $.getScript(this.href); 
     return false; 
    }); 
}); 

这告诉jQuery来穿上#productsclick处理程序,但只触发它的点击事件开始,发泡通过匹配th a选择器的元素。

的jQuery的版本,您使用的