使jQuery .on()与Rails 3一起使用

时间:2012-03-05 17:27:20

标签: javascript jquery ruby-on-rails asset-pipeline

我正在构建一个Rails 3应用程序,并试图让jQuery .on()函数正常工作。它目前没有做任何事情。

在assets / javascripts / v-application.js中:

console.log('application');

$('body').on('click', function(){
  alert('test');
});

当应用程序加载时,控制台显示“应用程序”(应该如此),但是当我单击正文时,没有警报触发。如果我将完全相同的javascript粘贴到控制台并单击正文,则会触发相应的警报。

如果我在浏览器中查看v-application.js,它会显示该功能。

我使用的是最新版本的jquery-rails(2.0.1)和rails(3.2.2)。这都在开发环境中。

Rails发生什么事情并不知道如何处理该基本函数调用?这与资产管道有关吗?我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:2)

我猜你没有准备好的功能。

$(function() {
  $('body').on('click', function(){
    alert('test');
  });
});

如果您将代码直接粘贴在主JS文件中,那么执行$('body')将找不到任何内容,因为在解释脚本标记时,尚未处理body标记。将逻辑放在就绪函数中将等待整个文档被解析。

答案 1 :(得分:0)

您使用的是jQuery 1.7.1吗?那是什么时候出现的,之前有过这个问题。

jsFiddle这里:http://jsfiddle.net/LmC6x/

正如@loganfsmyth所说,我建议使用ready函数。