.live不是rails 3.2.11中的函数错误

时间:2013-02-10 11:30:03

标签: javascript jquery ruby-on-rails-3 ruby-on-rails-3.2

我正在关注search-sort-using-ajax

这里我的gemfile包含

  • rails 3.2.11
  • 源码-3
  • will-paginate,'3.0'
  • jQuery的导轨, '2.2.1'

Application.js文件包含

  

// = require jquery

     

// = require jquery_ujs

application.js中的

脚本

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

进入控制台时出错

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

我搜索了但我找不到任何解决方案。任何人都可以帮我解决我在这里犯下的实际错误

谢谢

1 个答案:

答案 0 :(得分:4)

我的猜测是你正在使用jQuery 1.9,它删除了live(在多个版本被弃用之后)。您可以获得与live相同的效果:

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

...它将click处理程序附加到document,但只有在点击开始或通过与选择器#products th a匹配的元素时才触发它(这是{{1}确实)。

但是live已被弃用并删除了 (实际上是其中几个),其中一个原因是放置live处理程序几乎不是最好的一直到click(尽管可能是极少数情况下)。除非您正在删除并重新创建document元素,否则您可能需要:

products

告诉jQuery将$(function () { $('#products').on('click', 'th a', function () { $.getScript(this.href); return false; }); }); 处理程序放在click上,但只有在点击事件开始或通过与#products选择器匹配的元素冒泡时才触发它。