我正在关注 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
上,但只有在点击事件开始或冒泡通过与 匹配的元素时才会触发它一个
选择器。