Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .live不是rails 3.2.11中的函数错误_Javascript_Jquery_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

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

Javascript .live不是rails 3.2.11中的函数错误,javascript,jquery,ruby-on-rails-3,ruby-on-rails-3.2,Javascript,Jquery,Ruby On Rails 3,Ruby On Rails 3.2,我在跟踪 这里我的档案包括 轨道3.2.11 sqlite-3 将分页为“3.0” jquery rails,'2.2.1' Application.js文件包括 //=需要jquery //=需要jquery\u ujs application.js中的脚本 $(function () { $('#products th a').live('click', function () { $.getScript(this.href); return false; });

我在跟踪

这里我的档案包括

  • 轨道3.2.11
  • sqlite-3
  • 将分页为“3.0”
  • jquery rails,'2.2.1'
Application.js文件包括

//=需要jquery

//=需要jquery\u 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
相同的效果:

$(function () {
    $(document).on('click', '#products th a', function () {
        $.getScript(this.href);
        return false;
    });
});
…将
单击
处理程序附加到
document
但仅当单击开始或通过匹配选择器的元素启动或冒泡时才触发它(这就是
live
所做的)

但是
live
被弃用和删除是有原因的(事实上有几个原因),其中一个原因是将
click
处理程序一直放在
document
(尽管这种情况非常罕见)。例如,除非您删除并重新创建
产品
元素,否则您可能需要:

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

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

我猜您使用的是jQuery 1.9,它已被删除(在几个版本中被弃用之后)。这样做可以获得与
live
相同的效果:

$(function () {
    $(document).on('click', '#products th a', function () {
        $.getScript(this.href);
        return false;
    });
});
…它将
单击
处理程序附加到
文档
,但仅当单击在与选择器
#产品匹配的元素上启动或冒泡时才会触发它(这就是
live
所做的)

但是
live
被弃用和删除是有原因的(事实上有几个原因),其中一个原因是将
click
处理程序一直放在
document
(尽管这种情况非常罕见)。例如,除非您删除并重新创建
产品
元素,否则您可能需要:

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

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

您使用的是哪个版本的jQuery因为
live()
在jQuery 1.9中被弃用和删除,您可能应该使用
on()
@jonathan:Am使用jquery rails,'2.2.1'。我是否需要再次显式添加jquery文件。@rds:yea,因为它也可能取决于application.html或jquery rails gem也可以通过在Javascript中添加alert($().jquery)来检查您的版本您使用的是哪个版本的jquery既然
live()
在jquery 1.9中被弃用和删除,您可能应该使用
on()
@jonathan:Am使用jquery rails,'2.2.1'。是否需要再次显式添加jquery文件。@rds:yea,因为它也可能取决于application.html或jquer rails gem。请在javascript中添加alert($().jquery)来检查您的版本