Vytvářejte vlastní selektory pseudotříd pomocí nástroje Slick Selector Engine

Jak jsem zmínil ve svém předchozím příspěvku o selektoru Slick, Create Elements on the Fly s MooTools 1.3 a Slick, Slick je extrémně flexibilní. Součástí této flexibility je možnost definovat vlastní selektory pseudotříd, abyste lépe shromáždili prvky, které splňují vaše potřeby.

Vše začíná metodou Slick.definePseudo; stačí dát Slick.definePseudo název vašeho pseudo selektoru třídy a funkci vracející true (shoda) nebo false (není shoda).

Slick JavaScript

Slick.definePseudo('key',function(optionalArgument) {
	var trueOrFalse;
	
	// logic here to determine if there is a match
	
	return trueOrFalse;
})

Výše uvedená ukázka kódu zobrazuje základní formát definování vlastního selektoru pseudotřídy. Vytvořme několik "realistických" pseudo selektorů tříd.

Prvky s hodnotou úložiště

Slick.definePseudo('storage',function(key) {
	return document.id(this).retrieve(key);
});

Výše uvedená ukázka kódu vám umožňuje najít prvky s danou hodnotou úložiště na základě poskytnutého klíče.

Prvky se zadaným typem události

Slick.definePseudo('hasEvent',function(eventType) {
	var self = document.id(this);
	return eventType && 
		   self.retrieve('events') && 
		   self.retrieve('events')[eventType] &&
		   self.retrieve('events')[eventType].length;
});

Výše uvedená ukázka kódu vám umožňuje najít prvky s událostí kliknutí danou MooTools.

Prvky formuláře

Slick.definePseudo('form',function() {
	var tag = document.id(this).get('tag'), elements = ['textarea','select','input','button']
	return elements.contains(tag);
});

Výše uvedená ukázka kódu vám umožňuje získat všechny prvky formuláře v daném formuláři.

To je jen několik příkladů vytváření vlastních vlastních selektorů pseudotříd. Další skvělá věc na Slicku je, že je již definováno mnoho selektorů pseudotříd:prázdný, ne, obsahuje, první-dítě, poslední-dítě, jediné-dítě, n-té-dítě, n-té-poslední-dítě, n-té-z- typ, n-tý-poslední typ, index, sudý, lichý, první typu, poslední typu, jediný typ, povoleno, zakázáno, zaškrtnuto, a vybrané .

Slick je dodáván s MooTools 1.3, ale nezapomeňte, že Slick je nezávislý na frameworku a může fungovat sám o sobě. Napadají vás nějaké další selektory pseudotříd, které by byly užitečné? Sdílejte je!