2010-10-03 16 views
7

Czy ktoś może mi wyjaśnić, jak zamknięcie działa w formie bardziej przyjaznej dla użytkownika? Jego pomoc i dokumentacja prowadzą mnie donikąd. Jak wykonać proste zadanie, takie jak wybór i modyfikacja domeny (np. Wybrać wszystkie na stronie i ukryć je)?mylące biblioteki zamknięcia Google api

Odpowiedz

7

Zobacz http://derekslager.com/blog/posts/2010/06/google-closure-introduction.ashx, porównanie # 4,

Ukryj wszystkie 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> 

nie może pomóc z podziałem przyjazny dla użytkownika, choć.

+1

dobre źródło. Dziękuję Ci. – jirkap

+0

To pokazuje się naprawdę wysoko w wyszukiwaniach Google, czy możesz mi powiedzieć, gdzie trafia query.js? query_test.html in third_pary działa dobrze, ale gdy dodaję query.js w google/dom i instrukcję require, to goog.dom.query nadal nie jest dostępne. – HMR

+0

w katalogu goog w pliku deps.js zmieniłem goog.addDependency ("dojo/dom/query.js", i zadziałało.) – HMR

2

Myślałem, że dokumenty API były naprawdę świetne, ale po napisaniu kilkuset linii kodu natknąłem się na wszelkiego rodzaju dziwactwa i problemy. Na przykład dokumentacja modułu DOM nie ma jasnego punktu wejścia do wykrywania metod manipulacji domem -> wszystkie łącza najwyższego poziomu mają pomóc obiektom, których używa wewnętrznie. Możesz jednak znaleźć kilka użytecznych metod, jeśli na liście referencji do pakietu klikniesz dom, a następnie DomHelper. Wygląda na to, że potrzebujesz utworzyć instancję DomHelper, aby uzyskać dostęp do tych narzędzi?

Na szczęście oni zrobili zawierają przydatne linki do kodu w dokumentach API. Jeśli zagłębisz się w źródle DomHelper zobaczysz, że większość wymienionych metod jest dostępna bezpośrednio z przestrzeni nazw goog.dom!

Moim innym poważnym zarzutem jest to, że dokumenty często nie zawierają nazw argumentów/nazw/opisów. Na przykład po rozwinięciu goog.dom.DomHelper.contains nie wyświetla żadnych argumentów, ale kod poprawnie opisuje dwa argumenty. Nie mogę uwierzyć, że stworzyli tak dokładnie opisaną i udokumentowaną bibliotekę, a następnie nie zawarli tej informacji w (wygenerowanych) dokumentach! Chociaż przeglądając ich kod, często można znaleźć zwięzłe i nieinformacyjne komentarze w swoich adnotacjach.

Podsumowując: przeczytaj kod! Zawsze nienawidzę słyszeć tej odpowiedzi, ale teraz wydaje się najlepszą opcją.

Posiadam także książkę "Zamknięcie O'Reilly", i chociaż zapewnia ona pewne spostrzeżenia, nadal nie jest zbyt głęboka w zakresie korzystania z podstawowych wzorów i narzędzi dostępnych w bibliotece. Naprawdę chciałbym mieć lepszy pogląd na to, jak części biblioteki mają wchodzić w interakcje. Chyba ktoś powinien przygotować książkę kucharską z zamknięciem narzędzia?

+0

Uważam, szturchanie w kodzie znacznie bardziej pomocny niż dokumenty. Wszystko jest całkiem dobrze skomentował. – Ally