2011-09-20 45 views
0

我启动了一个新的RoR 3.1项目来测试它。我已经添加了以下需要的jQuery .js文件,以使拖动工作正确进入我的app/assests/javascripts目录。jQuery可拖动不能在Ruby on Rails 3.1中工作

jquery.ui.core.js 
jquery.ui.widget.js 
jquery.ui.mouse.js 
jquery.ui.draggable.js 

的application.js中有默认代码:

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

我加入的.js文件的代码,使一切工作纳入的application.js文件:

$(function() { 
    $("#draggable").draggable(); 
}); 

所以这是一切。

然后我用下面的代码在我的主页:

<div id="draggable" class="ui-widget-content"> 
    <p>Drag me around</p> 
</div> 

Dragging功能不起作用!我使用的代码基于可拖动的jQuery演示文件。它作为一个HTML文件很好,但是当我把它放到我的Ruby on Rails 3.1项目中时,它不起作用。我究竟做错了什么?因为这个,我一直在拉我的头发。谢谢你的帮助!

(不是我已经删除CSS格式,使我的代码看起来simplier。它不是因为,虽然)

+0

你有没有“查看源代码”来确定你认为实际上包含了什么? –

回答

1

您需要确保jQuery UI文件之间的依赖关系得以保留。

Rails不提供订单保证。所以,你需要改变你的application.js到:

//= require jquery 
//= require jquery_ujs 
//= require jquery.ui.core 
//= require jquery.ui.widget 
//= require jquery.ui.mouse 
//= require jquery.ui.draggable 
//= require_tree . 

或者您可以使用pakunok宝石自动为您做到这一点:

//= require jquery 
//= require jquery_ujs 
//= require pakunok/jquery-ui/pack/draggable 
//= require_tree . 
+0

它实际上是拉动application.js文件中的require行。我认为require_tree覆盖了目录中的所有内容,但没有 – EverTheLearner

1

嗯,首先我会检查方程工作的所有部分。确保你的js文件实际加载。进入控制台并寻找$(“#draggable”),看看它给了你什么。如果发现正确,请在控制台中应用.draggable()并查看是否有任何错误。或者更好的是,提供一个链接,我们可以看看你的项目。

+0

我在这里有一个链接:http://quiet-window-2595.heroku.com/。谢谢! – EverTheLearner

+0

手动设置$(“#draggable”)。draggable()返回一个TypeError。我冒昧地说,你的JS加载到页面的方式是搞砸了。尝试使用