Archiv autora: nothrem

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

Zakomentování klávesou v Eclipse

Eclipse

Stiskem CTRL+SHIFT+L zobrazíte okno se seznamem aktuálně dostupných klávesových zkratek. Pro zakomentování řádky vás zajímá zkratka „Toggle comment“. Tím zjistíte, jak zakomentování řádku provést.

Pokud chcete zkratku změnit, stiskněte CTRL+SHIFT+L a zobrazí se nastavení klávesových zkratek (General > Keys). Zadáním „Toggle comment“ do vyhledávacího pole nahoře dojde k profiltrování zkratek. Pak již můžete přiřadit, co potřebujete.

Pokud je v poli Binding již něco zadáno, musíte to nejprve smazat! Pokud vám v poli Binding vznikce např. „CTRL+A, CTRL+B“, znamená to, že budete muset nejprve stisknout CTRL+A a poté ještě CTRL+B. Pokud chcete jen CTRL+B, musíte nejprve stiskem BACKSPACE smazat původní CTRL+A. Pokračování textu Zakomentování klávesou v Eclipse

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

Geolocation: získání GPS pozice uživatele

Získání aktuální pozice uživatele je pro moderní webovou stránku základní předpoklad nabídnutí relevantních informací – ať už se jedná o zobrazení nejbližší kamenné prodejny nebo vypsání uživatelů z dané lokality (např. u internetové seznamky).

Stačí požádat

První, co musíte udělat, je ověřit, že daný prohlížeč poskytuje geolokační API. Pokud ho nenajdete, máte smůlu. Překvapivě ale většina současných prohlížečů ho poskytuje, desktopové nevyjímaje. Pokračování textu Geolocation: získání GPS pozice uživatele

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ž u zařízení s vyšším DPR mohou být „půl-pixely“ užitečné), je dobré spočtenou velikost zaokrouhlit:

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

Někdo ale rá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

„Too much recursion“ při odesílání formuláře

Pokud narazíte na chybu „Too much recursion“ (a nebo prostě prohlížeč spadne) při odesílání formuláře, podívejte se po metodě, která odesílání zajišťuje.

Na první pohled nemusí být nic zřejmé:

//...
window.checkValid = function(form) {
    form = $(form);
    if (form.validate()) {
        form.submit();
    }
}

Při kliknutí zkontrolujete validitu formuláře a pokud je validní, formulář odešlete. Celkem běžný postup.

Problém ale spočívá v tom, že jQuery methoda $(form).submit() neodesílá formulář, nýbrž vytváří událost submit (podobně jako metoda $(button).click() vytvoří událost click) a tudíž dojde k zavolání methody onsubmit – která pak znovu a znovu vytváří událost submit a zacyklí se. Pokračování textu „Too much recursion“ při odesílání formuláře