2011-09-20 5 views
0

J'ai commencé un nouveau projet RoR 3.1 pour le tester. J'ai ajouté les fichiers jQuery .js nécessaires pour que le travail soit correctement déplacé dans mon répertoire app/assests/javascripts.jQuery draggable ne fonctionne pas dans Ruby on Rails 3.1

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

Le application.js a le code par défaut:

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

J'ai ensuite ajouté le code .js pour le faire tous les travaux dans le fichier application.js:

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

Alors Tout est réglé.

Puis-je utiliser le code suivant dans ma page d'accueil:

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

Glissement ne fonctionne pas! Le code que j'ai utilisé est basé sur le fichier de démonstration jQuery pour draggable. Cela fonctionne bien en tant que fichier HTML, mais quand je mets dans mon projet Ruby on Rails 3.1, cela ne fonctionne pas. Qu'est-ce que je fais mal? J'ai tiré mes cheveux à cause de ça. Merci de votre aide!

(pas que j'ai supprimé le formatage css pour rendre mon code plus simple. Ce ne est pas à cause de cela bien)

+0

Avez-vous consulté la source pour vous assurer que ce que vous pensez être inclus est réellement? –

Répondre

1

Vous devez vous assurer que les dépendances entre les fichiers de l'interface utilisateur jQuery sont conservées.

Rails ne fournit aucune garantie de commande. Donc, vous devez changer votre 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 . 

Ou bien vous pouvez utiliser pakunok petit bijou pour le faire automatiquement pour vous:

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

Il tirait réellement les lignes require dans le fichier application.js. Je pensais que require_tree couvrait tout dans le répertoire, mais il n'a pas – EverTheLearner

1

Eh bien, pour commencer, je voudrais vérifier que toutes les parties de l'œuvre de l'équation. Assurez-vous que vos fichiers js sont effectivement chargés. Allez dans la console et cherchez $ ("# draggable"), voyez ce qu'il vous donne. Si elle est trouvée correctement, appliquez .draggable() dans la console et vérifiez s'il y a des erreurs. Ou mieux encore, fournissez un lien où nous pouvons regarder votre projet.

+0

J'ai un lien ici: http://quiet-window-2595.heroku.com/. Merci! – EverTheLearner

+0

Définir manuellement $ ("# draggable"). Draggable() renvoie une erreur TypeError. Je me risquerais à dire que la façon dont votre JS est chargé sur la page est foiré. Essayez de les ajouter à l'ancienne en utilisant