0

外部スクリプトをダウンロードして vendor/assets/javascripts に配置し、それを application.js (公開スクリプト) に含めました。

//= require jquery
//= require jquery_ujs
//= require reveal
//= require mustache
//= require_tree .

上記のエラーがコンソールに表示されるため、スクリプトは DOM のロードを待機していないようです。JS を緩く設定する前に、ボディがロードされていることを確認するにはどうすればよいですか?

EDIT Reveal は、独自のファイル Reveal_init.js.coffee で初期化されます。

$ ->
  Reveal.initialize
    controls: true,
    progress: false,
    history: true,
    loop: false,
    mouseWheel: true,

    # Apply a 3D roll to links on hover
    rollingLinks: true,
    theme: 'default', 
    transition: 'page' # default/cube/page/concave/linear(2d)
4

1 に答える 1

0

jQuery で.ready()を使用できます。

$(document).ready(function() {
  Reveal.initialize({
    opt1: "value",
    opt2: "value"
  });
});

または、CoffeeScript を使用する場合:

$ -> 
  Reveal.initialize
    opt1: "value"
    opt2: "value"

オブジェクトがまだ存在しないというエラーが引き続き発生する場合は、イベントよりも後で発生する$(window).load()ready()イベントを試してください。

それでもうまくいかず、要素がそこにあり、機能していると確信している場合は、 を使用してスクリプトの読み込みに遅延を追加するsetTimeoutか、Chrome/Safari の Web 開発者ツールまたは Firefox の Firebug を使用してスクリプトを手動で起動してみてください。 .

それでも問題が解決しない場合は、スクリプトのロードが早すぎる可能性を除外できるので、他の可能性を調査する必要があります。

于 2012-06-26T20:32:58.373 に答える