W poprzednich częściach kursu nauczyliśmy się poruszać po drzewie dokumentu, tworzyć nowe elementy strony oraz zmieniać ich cechy, odczytywać je oraz przechowywać dodatkowe informacje w elementach. Przyszła pora poznać kilka metod dokonujących znaczących zmian w strukturze dokumentu - dwie z nich poznaliśmy wcześniej - adopt i clone, teraz nauczymy się kilku nowych.

Czytaj dalej...

W kolejnej części kursu poświęconej elementom strony, zajmiemy się dynamicznym tworzeniem elementów, zmienianiem ich atrybutów oraz zapoznamy się z zupełnie nową funkcjonalnością klasy Element - możliwością przechowywania informacji w obiektach tej klasy.

Czytaj dalej...

W MooTools 1.2 usunięto funkcje, które stosowałem dość często - $E i $ES. Pozwalały one wybrać odpowiednio pierwszy lub wszystkie elementy zgodne z podanym selektorem i znajdujące się w podanym elemencie. Były one swoistym skrótem dla metod getElementsBySelector, getElement i getElements.

Gdyby ktoś chciał jednak móc je zastosować to prezentuję poniżej ich implementacje w MooTools 1.2:

function $E(selector, scope){
    return $($defined(scope) ? scope : document.body).getElement(selector);
}
 
function $ES(selector, scope){
    return $($defined(scope) ? scope : document.body).getElements(selector);
}

Pierwszy argument to oczywiście selektor określający jakie elementy chcemy wyselekcjonować, a drugi argument jest opcjonalny i pozwala ograniczyć zakres poszukiwań do wybranego elementu - musi to być uchwyt do elementu lub jego id.

Dla tych, którzy chcieliby w drugim argumencie móc zastosować także selektor przygotowałem lekko zmienioną wersję funkcji $E i $ES pozwalającą stosować w obu argumentach selektory:

function $E(selector, scope){
    return $$($defined(scope) ? scope : document.body)[0].getElement(selector);
}
 
function $ES(selector, scope){
    return $$($defined(scope) ? scope : document.body)[0].getElements(selector);
}

Należy pamiętać, że w tym wypadku nie można podać id bez znaku # na początku.

Niezwykle istotną sprawą przy tworzeniu skryptów jest możliwość łatwego poruszania się po drzewie dokumentu - w MooTools mamy kilka metod, które pozwalają nam na dostęp do różnych elementów względem innych elementów. Dodatkowo zapoznamy się bliżej z funkcją $$, która pozwala na selekcję kilku elementów naraz według określonych parametrów.

Czytaj dalej...

String.toHash()

01 września, 2008

Pewnie komuś się przyda metoda odwrotna to metody obiektu Hash - toQueryString, czyli metoda obiektu String - toHash:

 
String.implement({ 
	toHash: function(){ 
		var hash = new Hash(); 
		this.split('&').each(function(el){
			var t = el.split('='); 
			hash.include(t[0], t[1]);  
		});
		return hash; 
	}
});