2010-07-24 8 views
13

Gibt es ein Projekt (Open Source), das die Widgets und Plugins für jQuery UI übernimmt, aber uns erlaubt, sie zu verwenden, ohne HTML einzurichten?jQuery UI ohne HTML

Kinda wie Ext-js und Sproutcore, aber ohne die acidental Komplexität und den Mangel an Flüssigkeit, und mehr wie Cappuccino, aber ohne einen Mac und die schrecklichen Ladezeiten von Objective-j erforderlich ist (die auch keine IDE-Unterstützung hat). Auch eher wie , aber mit mehr Widgets. Und irgendwie wie Pyjamas und GWT, aber ohne das Fehlen von Widgets, Pre-Compiling-Schritt und/oder Java. Zum Beispiel:

uki({ 
    view: "Button", text: "Hello world!", 
    rect: "120 80 180 24", 
    click: function() { alert(this.text()); 
}).attachTo(document.getElementById("test")); 

Der Grund, warum ich jQuery nehme, weil es der einzige Web-Framework ist, das all 30 essential controls (angegeben mit enough plugins) unterstützt.

+0

Dies könnte eine sehr gute Idee für ein jQuery Plugin sein, wenn Sie mich fragen.Aber denken Sie daran, wenn die Benutzer Javascript deaktivieren - kein Inhalt auf der Seite mit dieser Art von Code. –

+2

Ja. Genau wie es nicht für Cappuccino, Sproutcore, Ukijs oder Extjs funktionieren wird. Dies sind Frameworks für Webanwendungen, keine Webseiten. –

+0

Making Javascript schreiben den HTML-Code wird Ihre Seite immens verlangsamen! Wenn Sie mit HTML nicht sicher sind, sollten Sie es lernen. Aber wenn Sie es nur aus dynamischen Gründen brauchen ... – UpHelix

Antwort

2

Ich glaube nicht, ein geeignetes DSL im Moment vorhanden ist, ich die nächste Sache von Coffee

ist denken kann http://jashkenas.github.com/coffee-script/

Es wäre auch ein guter Ausgangspunkt aus zu bauen.

+2

Coffescript ist eine ganz neue Sprache, die die "Quelle" zu Javascript kompiliert. Es ist nicht einmal entfernt mit UI oder Jquery verwandt. Und auf Coffescript aufzubauen wäre entzückend, aber Javascript-Leute haben diese Show bereits gesehen: Java mit GWT, Objective-J mit Cappuccino und alle Web-Frameworks auf dem Server mit allen anderen Sprachen. Es würde mir nichts ausmachen, einen in Coffescript zu schreiben, aber einen darin zu schreiben, würde die Eintrittsbarriere für andere Entwickler höher machen (und wir müssen Mauern unter uns niederreißen, nicht schaffen). –

+0

Im Gegensatz dazu ... >> aber das Schreiben eines Eintrags würde die Einstiegsbarriere für andere Entwickler höher machen (und wir müssen die Wände unter uns zusammenbrechen, nicht erstellen). << Der Punkt von CoffeeScript ist Barrierefreiheit zu erleichtern, Code Klarheit zu verbessern, und bieten ein syntaktisches Modell, das sauberer ist als der Brei, der JS/ECMA ist. Aber egal, es ist eine Option, die nur blauer Himmel für Ihre ursprüngliche Frage ist. Ich dachte nur, ich würde dir einen Denkpunkt geben. – ocodo

+0

Das größte Problem mit Coffescript im Moment ist seine ideelle Unterstützung. Javascript hat eines der besten Refactoring- und Typinferenz-Tools unter dynamischen Sprachen. Dies liegt hauptsächlich am Fehlen von method_missing, doesnNotUnderstand, missing_method, äquivalent, was diese Dinge viel einfacher macht. Coffescript hat nur eine Syntax-Hervorhebung (es ist zu früh für eine sich noch entwickelnde Sprache). Und Coffescript, obwohl für die meisten JS-Programmierer nicht so fremd wie Java oder Objective-j, würde eine Lernbarriere auferlegen. Ich root dafür, aber es ist zu früh, um auf seinen Zug aufzuspringen, zumindest für Frameworks. –

0

Was hindert Sie daran, JavaScript und jQuery UI so zu verwenden?

Das Laden einer Webseite in einem Browser der aktuellen Generation erfordert meines Wissens ein (X) HTML-Dokument, aber nichts hindert Sie daran, dieses Dokument zu einem Stub zu machen und Ihre Anwendung vollständig in JavaScript zu erstellen.

+0

Sie haben Recht, dass dies nicht unmöglich ist. Die Frage ist: Hat jemand anders alle genannten jquery plugins/jquery ui-Komponenten so verpackt? Suchen Sie nach dem Wave-Beispiel der Quelle ukijs (http://ukijs.org/examples/core-examples/wave/), um besser zu verstehen, was ich meine. –

2

Mal sehen, ob ich die Frage verstehe. Statt

<script> 
    $(function(){ 
    $('a').button(); 
    }); 
</script> 
<body> 
    <button id="foo">Foo</button> 
    <button id="bar">Bar</button> 
</body> 

Sie wollen

<script> 
    $(function(){ 
    $('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button()); 
    $('body').append($('<button id="bar">Bar</button>').button()); 
    }); 
</script> 
<body> 
</body> 

Macht das Ihre Bedürfnisse erfüllen? Am Ende des Tages müssen Sie immer noch die Details der Schaltfläche festlegen (wohin sie geht, ihren Text, was passiert, wenn Sie darauf klicken), egal was die Syntax ist.

+0

Eigentlich denke ich mehr im dsl-Stil von uki.js Ich habe den Beitrag bearbeitet, um es klarer zu machen –

1

DHTMLX ist vergleichbar mit ExtJS, die leider einige ihrer Nachteile enthält.

+0

Interessant. Ich kannte DHTMLX jetzt. Aber für ein Toolkit mit kostenpflichtigen Funktionen hat es fast so viele Widgets wie uki (was nicht viel ist). Es gibt auch TIBCO, das ich nicht erwähnt habe, da es mehr zufällige Komplexität als Sproutcore hat (welches eines der wenigen js-Frameworks ist, das komplexer ist als GWT). –

0

als "Mr. Shiny and New", wies der folgende Code würde funktionieren:

$('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button()); 

jedoch der Stil Sie suchen, können mithilfe der appendTo() Funktion accieved werden:

$('<button id="foo"></button>') 
    .button({ 
     label: "Hello world!", 
    }).click(function() { 
     //doSomething 

    }).appendTo('#test'); 

Weiterhin oben der Code gibt den „Button“ Objekt, das Sie das Objekt einer variablen für die spätere Wiederverwendung zuweisen können:

// set up the button 
var a = $('<button/>').button({ 
    label: 'Hello world!' 
}).offset({ 
    top: 80, 
    left: 120 
}).width(180).height(24) 
.click(function() { 
    // dosomething 
}).appendTo('body'); 

// hide then show and rename (if it takes your fancy) 
a.hide(300, function() { 
    a.show(300, function() { 
     a.button("option" , { 
      label: 'Hello to the world again!' 
     }); 
    }); 
}); 
+0

Die Frage lautet: "nimmt die Widgets und Plugins für jQuery UI". Daher frage ich nicht, ob es möglich ist. Ich weiß, dass es möglich ist. Ich habe es immer und immer wieder gemacht. Ich bin interessiert, wenn jemand anderes bereits eine Bibliothek veröffentlicht hat, die * ALL * davon für alle jquery ui Widgets und die wichtigsten Plugins macht. Wenn es nicht existiert, sobald meine Lösung reift, werde ich es öffnen. Aber ich dachte, es wäre unnötig für die Gemeinschaft, 2 solcher Projekte zu haben. –