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