2010-11-29 8 views
1

Ich habe definieren Klassen und Unterklassen stark Prototype Art und Weise unter Verwendung von:Ausführungs Prototype-Stil Klassenstruktur mit 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'); 

ich mit meiner 2.3.8 Rails-Anwendung und Planung gerade arbeite Highcharts zu verwenden (Charting JS-Bibliothek). Mein Problem ist, dass Highcharts von jQuery (oder MooTools) abhängig ist.

Gibt es eine Möglichkeit, im Prototype-Stil definierte Klassen und Unterklassen in das jQuery-Format zu ändern? Oder sollte ich meine vorhandenen Klassen in JavaScript umwandeln? Danke für Ihre Hilfe!

Antwort

2

Sie können beide Prototypen und jQuery zusammen auf der gleichen Seite verwenden, indem Sie jQuery.noConflict() verwenden. Gibt es einen Grund, dass Sie nur einen verwenden möchten? Verwenden Sie Prototyp für die meisten Dinge, da Sie sich damit wohl fühlen und jQuery für die Plug-Ins, die es benötigen ...

// during loading 
jQuery.noConflict(); 

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

Vielen Dank für die Antwort. Ich bin mir nicht sicher, wie das HighCharts-Plugin die jQuery-Bibliothek verwendet - ich würde annehmen, dass es $ -method anstelle von jQuery ('') verwendet. – hade

+0

Richtig geschriebene jQuery-Add-Ins sollten nicht davon abhängen, dass $ jQuery zugewiesen wurde. Sie können dies schnell feststellen, indem Sie jQuery.noConflict() hinzufügen und dann versuchen, ein Diagramm anzuzeigen. Wenn das Diagramm ordnungsgemäß angezeigt wird, wurde das Add-In korrekt implementiert. Wenn nicht, würde ich einen Fehlerbericht mit dem Entwickler einreichen. Es ist nicht schwer, Add-Ins unabhängig vom Namen des jQuery-Objekts zu erstellen. –

+0

Danke James, es funktioniert so, wie du es vorgeschlagen hast! – hade

Verwandte Themen