2008-09-22 6 views
4

J'ai la situation suivanteLa combinaison Scriptaculous et JQuery dans une application Rails

  • Une application qui utilise des rails de RJS/Scriptaculous pour offrir des fonctionnalités AJAX
  • Lot de javascript bien écrit en utilisant JQuery (pour une application séparée)

Je veux combiner les deux et utiliser mes fonctionnalités basées sur JQuery dans mon application Rails, mais je suis inquiet JQuery et Scriptaculous se heurtant (ils définissent le $() fonction, etc.).

Quelle est l'option la plus simple pour réunir les deux? Merci!

Répondre

15
jQuery.noConflict(); 

Ensuite, utilisez jQuery au lieu de $ pour faire référence à jQuery. par exemple,

jQuery('div.foo').doSomething() 

Si vous devez adapter le code jQuery qui utilise $, vous pouvez entourer avec ceci:

(function($) { 
...your code here... 
})(jQuery); 
1

jRails est un substitut de scriptaculous/prototype dans Rails utilisant la librairie jQuery, il fait exactement ce que vous cherchez. Puis, utilisez jQuery au lieu de $ pour faire référence à jQuery.

+0

Ce domaine est mort. Allez ici pour jRails: https://github.com/aaronchi/jrails – madh

2

Je crois qu'il est jQuery.noConflict().

Vous pouvez appeler standalone comme ceci:

jQuery.noConflict(); 

jQuery('div').hide(); 

Ou vous pouvez l'affecter à une autre variable de votre choix:

var $j = jQuery.noConflict(); 

$j('div').hide(); 

Ou vous pouvez continuer à utiliser la fonction $ jQuery dans un bloc comme ceci:

jQuery.noConflict(); 

// Put all your code in your document ready area 
jQuery(document).ready(function($){ 
    // Do jQuery stuff using $ 
    $("div").hide(); 
}); 
// Use Prototype with $(...), etc. 
$('someid').hide(); 

Pour plus d'informations, voir Using jQuery with Other Libraries dans la documentation de jQuery.

Questions connexes