Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 23. 11. 2012, 16:35:53
Existuje v jQuery nějaká spolehlivá metoda jak zjistit jestli je checkbox zaškrtnutej??
Pomocí metody .attr("checked") toho moc udělat nejde.. Navíc je problém, že každý prohlížeč se chová jinak.. Např. IE po refreshi odstraní všechno zaškrtání, ale Mozilla to zachová.. |
||
Chamurappi Profil |
#2 · Zasláno: 23. 11. 2012, 16:45:31
Reaguji na quatzaela:
Nekoukej na atributy, ale na vlastnosti. Metoda .attr to dříve nějak spojovala, ale v novějších verzích tuším zavedli .prop , nevím, nepoužívám. Stačí mi nativní vlastnost checked (bez jQuery), u té jsem se nikdy nesetkal s tím, že by neodpovídala skutečnému stavu.
„Např. IE po refreshi odstraní všechno zaškrtání, ale Mozilla to zachová“ To tuším nezáleží jen na prohlížeči, ale i na kešování. Musíš počítat s oběma možnostmi. |
||
quatzael Profil |
#3 · Zasláno: 23. 11. 2012, 17:14:58
aha, já jsem teď tady ještě našel další řešení, který by měly fungovat 100% na všem:
•if ( elem.checked ) •if ( $(elem).prop("checked") ) •if ( $(elem).is(":checked") ) akorát, že mě to funguje úplně naopak, když když je zaškrtlej tak nic, a když není tak podmínka ok.. mám tam ten checkbox v tom labelu jak jsem teď řešil v tomto vlákně: Checkbox uvnitř labelu |
||
Joker Profil |
#4 · Zasláno: 23. 11. 2012, 17:23:46
quatzael:
Ta první možnost je to, co psal Chamurappi: „Stačí mi nativní vlastnost checked (bez jQuery)“. „akorát, že mě to funguje úplně naopak“ Bude špatně napsaná ta podmínka. |
||
Chamurappi Profil |
#5 · Zasláno: 23. 11. 2012, 17:29:30
Reaguji na quatzaela:
„akorát, že mě to funguje úplně naopak“ Možná, že se na tu vlastnost ptáš ve špatnou chvíli. Třeba událost onchange je taková špatná chvíle, protože některé prohlížeče ji vyvolávají, až když přestane být zaškrtávátko po změně aktivní, pak se při opakovaném klikání může zdát, že je v checked opačná hodnota.
|
||
quatzael Profil |
#6 · Zasláno: 23. 11. 2012, 17:30:30
Joker:
no jo, ale co lze zvorat na podmínce, tak aby se chovala přesně obráceně.. |
||
Chamurappi Profil |
#7 · Zasláno: 23. 11. 2012, 17:31:32
Reaguji na quatzaela:
! |
||
quatzael Profil |
#8 · Zasláno: 23. 11. 2012, 17:37:39 · Upravil/a: quatzael
Chamurappi:
to s tím asi může mít nějakou souvislost.. původně jsem měl totiž ten checkbox na tom obdélníkovým labelu umístěnej absolutně a byl mimo celý labelový element. Musel jsem to trochu komplikovaně řešit kvůli hoverování, ale fungovalo to až na ten případ kdy jsem udělal dvojklik na ten checkbox. Checkbox to tuším bral jen jako jeden klik, ale jQuery jako dva kliky.. Chamurappi: „!“ to mi je jasný, ale ten jsem tam neměl.. až pak jsem si ho tam dopsal, aby se mi to chovalo tak jak potřebuju.. |
||
quatzael Profil |
#9 · Zasláno: 24. 11. 2012, 12:12:23
Chamurappi:
„Možná, že se na tu vlastnost ptáš ve špatnou chvíli.“ Už jsem na to přišel.. Měls pravdu.. tu .click() funkci mám přímo na ten label k tomu checkboxu, u kterýho jsem zjišťoval jestli je zaškrtlej nebo ne, takže když jsem na to klikl a podmínka byla až ve vnitř té funkce tak je jasné, že to bylo už podle aktuálního stavu.. Úplná banalita, ale večer mi to prostě už nějak nemyslelo.. |
||
Časová prodleva: 11 let
|
0