1

我正在关注使用 ajax 的搜索排序

这里我的 gemfile 包括

  • 导轨 3.2.11
  • sqlite-3
  • 将分页,'3.0'
  • jquery-rails,'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

我搜索了但我没有找到任何解决方案。谁能帮我我在这里犯了什么实际错误

谢谢

4

1 回答 1

4

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

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

...它将click处理程序附加到document但仅在单击开始或通过与选择器匹配的元素冒泡时触发它#products th a(这就是live所做的)。

但是由于某种原因live被弃用和删除(实际上是其中的几个),其中一个原因是几乎永远不会最好将处理程序一直放在下面(尽管在极少数情况下可能会如此)。例如,除非您要删除并重新创建元素,否则您可能想要:clickdocumentproducts

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

这告诉 jQuery 将click处理程序放在 上#products,但仅当单击事件开始于或通过与th a选择器匹配的元素冒泡时才会触发它。

于 2013-02-10T11:34:12.983 回答