我已经this problem before了,我花了两个完整的周末试图找出并理解这个问题。同样的问题继续出现。希望我可以确定这个rails应用程序中究竟发生了什么。
获取jQuery插件pageslide以使用我的rails应用程序。
在app/vendor/assets/javascripts
中是文件jquery.pageslide.js
。
因此,我相应地修改了application.js
清单 -
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery.ui.datepicker
//= require raphael.min
//= require justgage
//= require jquery.purr
//= require best_in_place
//= require lightbox
//= require jquery.cookie
//= require jquery.joyride-2.0.3
//= require jquery.pageslide
//= require modernizr.mq
//= require_tree .
我对jquery.pageslide.css
中的app/vendor/assets/stylesheets
做同样的事情。该
application.css
清单
*= require jquery.ui.datepicker
*= require_self
*= require bootstrap
*= require front
*= require lists
*= require tasks
*= require lightbox
*= require joyride-2.0.3
*= require jquery.pageslide
*/
现在在我的一个视图中使用插件slide out a modal -
视图/列表/ show.html.erb -
<a href="#modal123" class="second_thing">Link text</a>
<div id="modal123" style="display:none">
<h2>Modal</h2>
<p>And all the stuff.</p>
<a href="javascript:$.pageslide.close()">Close</a>
</div>
Javascript角/ lists.js.coffee -
$ ->
$("a.second_thing").pageslide({ direction: "left", modal: true });
我的初始核对清单 -
- 来自控制台的警告或错误。
- 可以在页面的源代码中找到css和js pagelide文件。
- 在调用javscripts/lists.js.coffee
中的pageslide之前确保已加载DOM / jQuery
- 我的清单文件的顺序似乎并不表示在加载pageslide.js之前正在执行lists.js.coffee
看起来我错过了一些额外的检查以确保其有效?
其他说明 - 在开发环境中,其他jQuery插件正在工作(兜风,但在带有脚本标签的show.html.erb页面中调用它),我有这一行config.assets.initialize_on_precompile = false
来安抚application.rb
中的设计。
我很难过,我还应该检查什么?
答案 0 :(得分:2)
好的,由于@ muttonlamb的评论并重新阅读rails指南中的资产管道部分,我得到了它的工作。
我在show.html.erb
文件中添加了这一行,因为pageslide要求源文件包含在body标签中,而我最初的方式只是在头部加载。
<%= javascript_include_tag "jquery.pageslide" %>
注意:我还在app / assets / javascripts下明确添加了jquery.pageslide以进行上述引用。
这似乎不是最友好的表现,所以我很乐意为实现上述目标找到更好的答案。