[英]jQuery document ready not firing in a Rails 5 App with ActionCable
[英]Rails 4: JQuery .ready Not Firing
盡管我可能會缺少一些基本知識,但關於stackoverflow的解決方案似乎無法解決我的問題。 我似乎無法在Rails 4應用程序中觸發JQuery的.ready函數。
我在custom.js中嘗試了以下解決方案:
1。
$(document).on('ready page:load', function () {
alert("hello, world")
});
2。
var ready;
ready = function() {
alert("Hello, world!")
};
$(document).ready(ready);
$(document).on('page:load', ready);
3。
$(function() {
alert("Hello, world!")
});
4。
window.onload=function(){ alert("Hello, javascript onload!") };
我的application.js清單如下所示:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require custom
//= require plugins
//= require turbolinks
//= require_self
//= require_tree .
我的gemfile看起來像這樣:
gem 'rails', '4.0.0'
gem 'jquery-rails'
gem 'jquery-turbolinks'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'pg'
gem 'devise'
控制台日志顯示:
TypeError: $ is not a function application.js:22
生成的源包括:
<script src="/assets/jquery.js?body=1"></script>
<script src="/assets/jquery.turbolinks.js?body=1"></script>
<script src="/assets/jquery_ujs.js?body=1"></script>
<script src="/assets/custom.js?body=1"></script>
<script src="/assets/plugins.js?body=1"></script>
<script src="/assets/turbolinks.js?body=1"></script>
<script src="/assets/application.js?body=1"></script>
如果我將其放入custom.js,它將起作用:
alert("Hello, world!");
謝謝您的幫助!
首先,我不建議將任何js代碼添加到application.js
因為這是清單文件。 只需創建一個新文件,例如core.js.coffee
然后嘗試
$ -> alert 'Hello World!'
Rails中的Sprockets會提取您的所有js / coffee文件,並將它們放入生產中的壓縮且縮小的單個文件中。
我想出了一個解決方案。 看來我包含在資產文件夾中的jquery.js文件與jquery gem沖突。 我刪除了jquery文件,並將語法更改為:
$( document ).ready(function() { alert("Hello, world!") });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.