Archiv štítku: jQuery

Jak vytvářet generované funkce

jQuery a další frameworky často používají speciální techniku pro vytváření JavaScriptových funkcí, kdy, místo aby uváděli zdrojový kód pro každou funkci, nadefinují jména funkcí a obecný kód, který funguje pro všechny funkce.

Podívejme se podrobněji na výhody a nevýhody tohoto přístupu a postupy, jak ho použít k vlastnímu prospěchu.

Pokračování textu Jak vytvářet generované funkce

Pomoc! Nefunguje focus()

Běžná situace – potřebujete po načtení stránky najet do formuláře, který je na jejím konci a dát kurzor do prvního inputu.

Celkem snadno vyzkoumáte, že k obojímu slouží funkce focus(), která předá kurzor do daného elementu a navíc na něj naskroluje, pokud je potřeba:

$(default_el).focus();

Zdánlivě vše funguje bez problémů až do chvíle, kdy se prohlížeč rozhodne, že z neznámého důvodu nebude na daný prvek skrolovat. Pokračování textu Pomoc! Nefunguje focus()

Nejužitečnější jQuery metody a jejich rozdíly

Vzhůru ke dnu

.html() vrátí obsah prvku v textové podobě včetně všech HTML značek. Zadáním parametru můžete naopak obsah změnit.

.text() vrátí obsah prvku v textové podobě, ale na rozdíl od .html() z textu odstraní všechny HTML značky. Lze tak dobře použít na text, který obsahuje odřádkování BR případně jiné formátovací značky (B, I, Strong, atd.) a vy potřebujete získat čistý text (např. pro zobrazení v tooltipu nebo alertu). Pokud do této metody zadáte parametr, dojde k automatickému nahrazení všech znaků, které nejsou bezpečné pro HTML, a následně je předán metodě .html().

Pokračování textu Nejužitečnější jQuery metody a jejich rozdíly

Ajax komunikace s jiným serverem

Odesílat požadavky na jiný server, než ze kterého byl vás JS kód stažen (tzv. cross-domain request), je z bezpečnostních důvodů zakázáno. A přesto je v dnešní doby celá řada serverů, na které můžete poslat AJAX request a získat data (např. Google Maps API).

Vytvoření takového requestu a API, které ho zpracuje, je celkem jednoduché, ale je potřeba vědět, kde začít. Pokračování textu Ajax komunikace s jiným serverem

Zaokrouhlení na celé číslo

Zaokrouhlit na celé číslo může být celkem častá akce, zvláště pokud počítáte layout stránky dynamicky.

//zobraz 3 LI vedle sebe v jedné řádce
$('li').width($(window).width() / 3);

Jelikož DOM nemá moc rád desetinná čísla v nastavení pixelů (i když půl-pixel může být docela užitečný – hlavně u nových iPhonů), je dobré spočtenou velikost zaokrouhlit:

//zobraz 3 LI vedle sebe v jedné řádce
$('li').width(Math.round($(window).width() / 3));

Někdo ale řád používá parseInt pro jeho jednoduchost:

//zobraz 3 LI vedle sebe v jedné řádce
$('li').width(parseInt($(window).width() / 3));

Pokračování textu Zaokrouhlení na celé číslo