2010-11-29 21 views
1

Je l'ai utilisé beaucoup de chemin Prototype de la définition des classes et sous-classes:mise en œuvre structure de classe prototype de style avec jQuery

// properties are directly passed to `create` method 
var Person = Class.create({ 
    initialize: function(name) { 
    this.name = name; 
    }, 
    say: function(message) { 
    return this.name + ': ' + message; 
    } 
}); 

// when subclassing, specify the class you want to inherit from 
var Pirate = Class.create(Person, { 
    // redefine the speak method 
    say: function($super, message) { 
    return $super(message) + ', yarr!'; 
    } 
}); 

var john = new Pirate('Long John'); 
john.say('ahoy matey'); 

Je travaille avec mon application Rails 2.3.8 et de la planification à utiliser Highcharts (cartographie Bibliothèque JS). Mon problème est que Highcharts dépend de jQuery (ou MooTools).

Existe-t-il un moyen de modifier les classes et sous-classes définies de style Prototype dans le format jQuery? Ou devrais-je changer mes classes existantes en Javascript simple? Merci de votre aide!

Répondre

2

Vous pouvez utiliser à la fois Prototype et jQuery ensemble sur la même page en utilisant jQuery.noConflict(). Y at-il une raison pour laquelle vous voulez seulement en utiliser un? Utilisez Prototype pour la plupart des choses puisque vous semblez à l'aise avec elle et jQuery pour les plug-ins qui le nécessitent ...

// during loading 
jQuery.noConflict(); 

// later when you want to manipulate things 
jQuery('div.hideme').hide(); // jQuery 
$('#somethingElse').hide(); // Prototype 
+0

Merci James pour la réponse. Je ne suis pas sûr comment le plugin HighCharts utilise la bibliothèque jQuery - je suppose qu'il utilise $ -method au lieu de jQuery ('') un. – hade

+0

Les compléments jQuery correctement écrits ne doivent pas dépendre de l'affectation de $ à jQuery. Vous serez en mesure de le dire rapidement en ajoutant jQuery.noConflict(), puis en essayant d'afficher un graphique. Si le graphique s'affiche correctement, ils ont correctement implémenté leur complément. Sinon, je déposerais un rapport de bogue avec le développeur. Il n'est pas difficile de faire des compléments agnostiques au nom de l'objet jQuery. –

+0

Merci James, ça marche comme tu as suggéré! – hade