2013-07-14 111 views
0

我已经有this problem before,我花了两个完整的周末试图找出并理解这个问题。同样的问题仍然存在。希望我能确定这个Rails应用程序究竟发生了什么。jQuery插件Rails不加载

让我的rails应用程序使用jQuery插件pageslide

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 . 

我做在app/vendor/assets/stylesheetsjquery.pageslide.css同样的事情。该 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。咖啡-

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

我的初始清单-

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

执行它看起来像我缺少一些额外的检查,以确保这项工作?

其他笔记 - 在发展ENV,其他jQuery插件工作(兜风但script标签调用它show.html.erb页),我有这条线config.assets.initialize_on_precompile = false安抚色器件在application.rb

我很难过,还有什么我应该检查?

+0

我没有足够的关于js和jquery的信息,但它似乎在咖啡文件的第一行应该被删除,你可以试试吗? – ekremkaraca

+0

需要该位来延迟代码,直到DOM加载完毕。没有它,代码将在完整的html加载之前执行。 –

+0

我已经在pageslide插件页面中检查了您的咖啡和样本。几乎复制粘贴,但编译脚本除外。当我从http://coffeescript.org/页面查看代码时,生成的脚本与原始脚本不同。我建议检查你的代码,看看原始代码和你的代码之间的区别。 – ekremkaraca

回答

2

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

我在我的show.html.erb文件中添加了这一行,因为pageslide需要将源文件包含在body标签中,并且我最初只是将它加载到头部。

<%= javascript_include_tag "jquery.pageslide" %> 

注意:我还明确地在app/assets/javascripts下添加了jquery.pageslide来做出上述参考。

这似乎并不是最友好的表现,所以我会很乐意标记更好的答案来达到上述目的。