Autor | Zpráva | ||
---|---|---|---|
xaverista Profil |
#1 · Zasláno: 8. 7. 2015, 19:31:57
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 |
#2 · Zasláno: 8. 7. 2015, 21:47:24
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á.
|
||
Časová prodleva: 9 let
|
0