簡體   English   中英

Rails 4:JQuery .ready不觸發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM