我是 Rails 和 javascript 的新手,我很难将 jQuery 函数注册到事件中。我已经在另一个项目中完成了它,我几乎正在逐行复制它,但它仍然无法正常工作。这是我的代码
首先,我将 pusher gem 添加到我的 gemfile
gem 'pusher'
然后我跑了捆绑安装
然后我将这些行添加到 environment.rb
require 'pusher'
Pusher.app_id = **
Pusher.key = **
Pusher.secret = **
然后我将推送脚本添加到我的 application.html 的头部
应用程序.html.erb
<head>
<meta charset="utf-8" />
<!-- Uncomment to make IE8 render like IE7 -->
<!-- <meta http-equiv="X-UA-Compatible" content="IE=7" /> -->
<!-- Set the viewport width to device width for mobile -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "vendor/custom.modernizr" %>
<%= javascript_include_tag "http://js.pusher.com/2.0/pusher.min.js" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
接下来,我将 pusher.js 文件包含在 application.js 中
//= require pusher
最后,这是我的 pusher.js 文件
var pusher = new Pusher('MY KEY');
var myChannel = pusher.subscribe('job-channel');
$(document).ready(function() {
myChannel.bind('job-added', function(data) {
addJob(data)
});
function addJob(data) {
var new_job = "<h1> TEST </h1>";
$('.job_list').append(new_job)
}
});
我像这样在控制器中激活事件
Pusher['job-channel'].trigger('job-added', @job.to_json)
这不起作用,但即使我使用 Pushers 事件创建器,它也不起作用。
我尝试通过调试器运行 jQuery,$(document).ready 和 pusher 的东西似乎工作得很好,但是addJob
当我激活事件时它只是不执行。