| Autor | Zpráva | ||
|---|---|---|---|
| Monkeys Profil * |
#1 · Zasláno: 19. 4. 2012, 10:43:34
Ako vyriesit tuto cast kodu v ktorej prepinam disabled tlacitko do enabled ale problem vznika ked napr. oznacim 2 checkboxi a potom jeden odznacim (teda jeden ostane oznaceny), ale tlacitko sa mi vrati do disabled neviem kde robim chybu.
(function(){
//disabled / enabled button
$("#prepinac, .prepni").click(function() {
var checked_status = this.checked;
if (checked_status == true) {
$("#vymaz").removeAttr("disabled");
} else {
$("#vymaz").attr("disabled", "disabled");
}
});
}); Dakujem |
||
| _es Profil |
Monkeys:
„$("#vymaz").removeAttr("disabled");“ Čo by to malo spraviť? Objektu tlačítka treba nastavovať vlastnosť disabled na true alebo false.
„oznacim 2 checkboxi a potom jeden odznacim (teda jeden ostane oznaceny), ale tlacitko sa mi vrati do disabled neviem kde robim chybu.“ Asi v logike aplikácie. Rozmysli si, čo, kedy, a koľko krát, sa vykoná. |
||
| Monkeys Profil * |
#3 · Zasláno: 19. 4. 2012, 11:13:54
_es:
#prepinac - je hlavny checkbox ktorym označim alebo odznacim vsetky ostatne checkboxi. .prepni - to su jednotlive checkboxi „Čo by to malo spraviť?“ Prepina to tlacitko do nepristupneho stavu - Tento riadok funguje takze by to malo byt v poriadku Toto je kod ktorym oznacujem ostatne checkboxi
$("#prepinac").click(function () {
$('.prepni').attr('checked', this.checked);
});
$(".prepni").click(function(){
if($(".prepni").length == $(".prepni:checked").length) {
$("#prepinac").attr("checked", true);
} else {
$("#prepinac").removeAttr("checked");
}
}); |
||
| _es Profil |
#4 · Zasláno: 19. 4. 2012, 11:24:13
Monkeys:
„if($(".prepni").length == $(".prepni:checked").length)“ O tejto časti kódu mám pochybnosti. Viď aj Doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute Sprav to nejako normálnejšie cez skutočné vlastnosti checked a disabled a nie cez hentie jQuery zlepšováky.
|
||
| Monkeys Profil * |
#5 · Zasláno: 19. 4. 2012, 17:42:08
Mordujem sa stym odrana a neviem stym pohnut.
Dokazem spravit udalost na jeden prepinac ale ako som uz pisal oznacim viacej boxov a po odznaceni jendeho sa tlacito vrati do disabled aj ked su oznacene ostatne boxi. skusil som nieco taketo cez cyklus each ale aj tak to nefunguje. $("#prepinace .toggle").each(function(){ // najdeme vsetky boxy
var prep = $(this).attr('checked', false); //boxom dame false nadstavenie (neodskrknute)
prep.click(function(){ // po kliknuti na box
var prepinac = this.checked; // ak je box oznaceny
if(prepinac == true){ // ma hodnotu true (je odskrknuty )
$("#vymaz").removeAttr("disabled"); // tlacitoko daj do enabled
}else{
$("#vymaz").attr("disabled", "disabled"); // vratit do disabled
}
});
}) |
||
| _es Profil |
#6 · Zasláno: 19. 4. 2012, 17:58:41
Monkeys:
Prečo do toho, napriek rade, stále montuješ metódy jQuery na prístup k atribútom? Ide o maskované getAttribute/setAttribute. Použi len vlastnosti checked a disabled, nepouži jQuery metódy attr a removeAttr.
|
||
| Monkeys Profil * |
#7 · Zasláno: 19. 4. 2012, 19:06:51
_es:
Hmm tak to rovno mozem ostat pri JS a neucit sa kniznicu jQuery. Ked mi radis aby som polovicu z tych veci vypustil. Neviem sa bez toho pohnut ked mam ostat pri jQuery. |
||
| Monkeys Profil * |
#8 · Zasláno: 19. 4. 2012, 21:24:53
No dosiel som nato nakoniec :)
Funguje pekne Podelim sa ak by sa stym v buducnosti niekto trapil. $("#prepinace .toggle").click(function(){
var p = $(this).is(':checked'),
v = $(this).siblings('.toggle:checked');
//oznacit jednotlivo
$('.toggle:checkbox').change(function(){
if(this.checked){
$("#vymaz").removeAttr("disabled");
}
});
// zachovat oznacene ak sa jedna o posledny box znepristupnit tlacitko
if($(".toggle:checked").length == v.length) {
if(p == true){
$("#vymaz").removeAttr("disabled");
}else{
$("#vymaz").attr("disabled", "disabled");
}
}
}); |
||
| _es Profil |
#9 · Zasláno: 20. 4. 2012, 10:26:49
Monkeys:
„Hmm tak to rovno mozem ostat pri JS a neucit sa kniznicu jQuery.“ Časté potíže, zajímavosti a poučné debaty » Co vlastně je jQuery? To, že do stránky natiahneš jQuery, neznamená, že musíš použiť metódy jQuery na daný účel nevhodné - attr a removeAttr. Ešte by bolo dobré ten tvoj kód otestovať vo viacerých prehliadačoch.
|
||
| Monkeys Profil * |
#10 · Zasláno: 20. 4. 2012, 10:56:09
_es:
„Ešte by bolo dobré ten tvoj kód otestovať vo viacerých prehliadačoch.“ Testované v IE, Mozila, Opera - bez problemov M. |
||
|
Časová prodleva: 14 let
|
|||
0