0

我以前遇到过这个问题,我花了整整两个周末试图找出并理解这个问题。同样的问题不断出现。希望我能确定这个 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.cssin做同样的事情app/vendor/assets/stylesheetsapplication.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
 */

现在使用插件在我的一个视图中滑出一个模式-

视图/列表/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>

javascripts/lists.js.coffee-

$ ->
  $("a.second_thing").pageslide({ direction: "left", modal: true });

我的初始清单-

- 没有来自控制台的警告或错误。-css 和 js 页面幻灯片文件可以在页面的源代码中找到。- 确保在调用 pageslide 之前加载 DOM/jQuery javscripts/lists.js.coffee - 我的清单文件的顺序似乎并不表明在加载 pageslide.js 之前正在执行 lists.js.coffee

看起来我缺少一些额外的检查来确保它有效?

其他注意事项 - 在开发环境中,其他 jQuery 插件工作(joyride 但在带有脚本标签的 show.html.erb 页面中调用它),我有这行config.assets.initialize_on_precompile = false来安抚application.rb.

我被难住了,我还要检查什么?

4

1 回答 1

2

好的,感谢@muttonlamb 的评论并重新阅读了 rails 指南上的资产管道部分,我得到了它。

我在我的show.html.erb文件中添加了这一行,因为 pageslide 要求源文件包含在 body 标记中,而我最初拥有它的方式只是在头部加载。

<%= javascript_include_tag "jquery.pageslide" %>

注意:我还在 app/assets/javascripts 下明确添加了 jquery.pageslide 以进行上述参考。

这似乎不是对性能最友好的,所以我很乐意标记一个更好的答案来实现上述目标。

于 2013-07-15T00:27:20.683 回答