在应用程序文件中,我正在加载JS:
%script{:type => 'text/javascript', :src => 'https://www.google.com/jsapi'}
%script{:type => "text/javascript", :src => "http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"}
%script{:type => "text/javascript", :src => "/assets/jquery_ujs.js?body=1"}
我需要通过%script
标记加载它们。
但JS不起作用。当我打开Firebug以找出原因时,有以下内容:
Uncaught ReferenceError: jQuery is not defined jquery_ujs.js?body=1:394
上面的所有路径都是正确的,当我显示生成的应用程序的HTML输出并单击JS文件的路径时,一切正常。
因此,出了什么问题?为什么会出现这些错误?
答案 0 :(得分:0)
查看jQuery是否被加载两次。在Chrome开发者工具中,加载网络选项卡,然后重新加载页面。单击“名称”列以按名称排序,并查看是否有两个jQuerys。这件事发生在我之前。第二次加载jQuery会覆盖jQuery名称空间,并且与该名称空间关联的任何库都不起作用。
答案 1 :(得分:0)
问题出在外部加载的javascript文件中(来自第三方提供商,如Github或Google)。
当我下载这些文件并将其保存到/assets
文件夹中时,一切运行良好。