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

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

<分区>

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

这里我的gemfile包括

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

我搜索过,但没有找到任何解决方案。任何人都可以帮助我我在这里犯了什么实际错误

谢谢

最佳答案

我猜你使用的是 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 被弃用并被删除是有原因的(实际上有几个原因),其中之一就是几乎从来没有最好把 document 处一直单击 处理程序(尽管在极少数情况下可能会发生这种情况)。例如,除非您要删除并重新创建 products 元素,否则您可能需要:

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

这告诉 jQuery 将 click 处理程序放在 #products 上,但只有在点击事件开始或冒泡通过与 匹配的元素时才会触发它一个选择器。

关于javascript - .live 不是 rails 3.2.11 中的函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797251/

相关文章:

javascript - 为什么这适用于 Firefox 而不适用于 Chrome 或 IE?

javascript - Vimeo API - 加载视频

Django 模板中动态生成表单的 Javascript 验证

javascript - 单击事件和多个数据对象

ruby-on-rails-3 - 如何防止 bundle 程序将平台信息添加到Gemfile.lock

jquery - 在 Ruby on Rails 3 应用程序中使用 jQuery 实现 AJAX 自动完成

ruby-on-rails - 如何运行schema.rb?

javascript - JS Object.assign 以自己的类作为属性

javascript - 如果条件在 JAVASCRIPT 中不起作用

jquery - Testcafe 得到 json 响应