Autor Zpráva
xaverista
Profil
Zdravím,

chtěl bych Vás požádat o opravu, zkrácení kódu jquery... Jelikož se Jquery teprve učím, zkusil jsem vytvořit jednoduchou kalkulačku a chtěl bych Vás poprosi, zda by jste mi mohli pomoci s optimalizací kódu popř. navrhnout úpravy...

<script>        
                $(document).ready(function() {
                    $('#hra').change(function(){
                        var option = $(this).val();
                        if ($("#hra").val() == "mc") {
                            var max = 250;
                            var price = 0.25;
                        };
                        if ($("#hra").val() == "cs16") {
                            var max = 32;
                            var price = 0.18;
                        };
                        if ($("#hra").val() == "sm") {
                            var max = 1000;
                            var price = 0.01;
                        };
                        $(".hry").show(0);
                        $(".ukaz_cena").slideDown(500).show(0);
                        $("#sloty").empty();
                        for (var i = 1; i <= max; i++) {
                            $("#sloty").append($("<option></option>").val(i).html(i));
                        };
                        var sloty = 1;
                        var cena = sloty*price;
                        var denne = cena/30;
                        $('#ukaz').text(cena.toFixed(2));
                        $('#den').text((cena/30).toFixed(4));
                        $('#sloty').change(function(){
                            var sloty = $('#sloty').val();
                            var cena = sloty*price;
                            var denne = cena/30;
                            $('#ukaz').text(cena.toFixed(2));
                            $('#den').text((cena/30).toFixed(4));
                        });
                    });
                });
            </script>

Díky, xaverista
Joker
Profil
xaverista:
Co tam vidím za problémy:
1. Deklaruje se proměnná option, která pak nikde není použitá.
2. Sekvence příkazu if ($("#hra").val() == … pokaždé znovu konstruuje jQuery objekt a zjišťuje hodnotu pole, místo aby se hodnota zjistila jednou a pak jen používala. Shodou okolností je podle mě $("#hra").val() hodnotou proměnné option, protože ten prvek hra je zároveň this. V tom případě je $("#hra").val() dost zdlouhavá objížďka k this.value.
3. Není mi jasné, co je účelem sekvence slideDown + show. Prvek zobrazí už to slideDown, takže show mi připadá zbytečné.
4. To vytváření HTML přes jQuery v cyklu mi připadá ukecané a pomalé.
5. Prvek sloty může obsahovat až 1000 položek. Nebude to pro uživatele nepohodlné?
6. Žádná z proměnných jménem denne se nikde nepoužívá.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: