2010-10-03 4 views
7

könnte mir jemand erklären, wie die Schließung in benutzerfreundlicher Form funktioniert? Seine Hilfe und Dokumentation führt mich nirgends wirklich hin. Wie führen Sie eine einfache Aufgabe aus, z. B. Auswählen und Ändern des Doms (z. B. Alle auf der Seite auswählen und ausblenden)?verwirrende Google Closure-Bibliothek api

Antwort

7

Siehe http://derekslager.com/blog/posts/2010/06/google-closure-introduction.ashx, Vergleich # 4,

ausblenden alle div ‚s:

<html> 
<head> 
<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js" type="text/javascript"></script> 
<script language="JavaScript"> 
    goog.require('goog.dom.query'); 
    goog.require('goog.style'); 
</script> 
<script> 
    function HideElement(selector) { 
    goog.array.map(goog.dom.query(selector, null), function(e) { 
     goog.style.showElement(e, false); 
    }); 
    } 
</script> 
</head> 
<body> 
    <div>div</div> 
    <p>paragraph</p> 
    <div>another div</div> 
    <input type="button" value="hide" onclick="HideElement('div');"/> 
</body> 
</html> 

Können Sie nicht mit dem benutzerfreundlichen Abbau helfen, though.

+1

gute Quelle. Danke. – jirkap

+0

Dies zeigt wirklich hoch in Google-Suchen, könnten Sie mir sagen, wo die Abfrage.js geht? Die Query_test.html in Third_pary funktioniert gut, aber wenn ich query.js in google/dom und die Require-Anweisung hinzufügen, ist goog.dom.query immer noch nicht verfügbar. – HMR

+0

im goog-Verzeichnis in der Datei deps.js Ich änderte goog.addDependency ('dojo/dom/query.js', Und es hat funktioniert. – HMR

2

Ich dachte, dass die API-Dokumentation zuerst sehr gut war, aber nachdem ich ein paar hundert Zeilen Code geschrieben habe, bin ich auf alle Arten von Macken und Problemen gestoßen. Zum Beispiel hat die dom-Moduldokumentation keinen eindeutigen Einstiegspunkt zum Auffinden von Dom-Manipulationsmethoden -> alle Hyperlinks auf oberster Ebene sind für Hilfsobjekte, die intern verwendet werden. Sie können jedoch einige nützliche Methoden finden, wenn Sie in der Paket-Referenzliste auf Dom klicken, dann auf DomHelper. Es scheint so, als müssten Sie einen DomHelper instanziieren, um Zugang zu diesen Tools zu erhalten?

Zum Glück haben sie tat enthalten praktische Links in den Code über die API-Dokumentation. Wenn Sie in der DomHelper-Quelle herumstöbern, sehen Sie, dass die meisten der aufgelisteten Methoden direkt aus dem goog.dom-Namespace verfügbar sind!

Meine andere große Beschwerde ist, dass die Dokumente oft nicht Argumenttypen/Namen/Beschreibungen auflisten. Wenn Sie beispielsweise "goog.dom.DomHelper.contains" erweitern, werden keine Argumente aufgelistet, aber der Code kennzeichnet zwei Argumente korrekt. Ich kann nicht glauben, dass sie eine so ausführlich kommentierte und dokumentierte Bibliothek erstellt haben und diese Informationen dann nicht in die (generierten) Dokumente aufgenommen haben! Auch wenn Sie ihren Code durchsuchen, finden Sie häufig auch knappe und informative Kommentare in ihren Anmerkungen.

Also, um zusammenzufassen: Lesen Sie den Code! Ich hasse es immer, diese Antwort zu hören, aber es scheint die beste Option im Moment zu sein.

Ich habe auch das O'Reilly-Closure-Buch, und obwohl es einige Einsichten liefert, ist es immer noch nicht sehr tiefgründig, tatsächlich grundlegende Muster und Werkzeuge in der Bibliothek zu verwenden. Ich hätte gerne einen besseren Überblick darüber, wie Teile der Bibliothek interagieren sollen. Ich nehme an, jemand sollte ein Kochbuch für Kochutensilien machen.

+0

Ich stochern im Code viel hilfreicher als die Dokumente. Alles ist ganz gut kommentiert. – Ally