Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Czy da się optymalniej
RollDev
post 8.07.2016, 08:38:11
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

Ostrzeżenie: (0%)
-----


Witam,

W JS nie jestem spacjalnie dobry, ale moje rozwiązania działają.
Mam chechboxa od zaznaczania wszystkich innych chechboxów.
Jest to "ładny" chceckbox, dlatego muszę dodawać/usuwać klasę jego rodzica. Mój kod wygląda tak i mam pytanie, czy da się to jakoś optymalniej zrobić?
Może jest jakaś dobra praktyka do takich rozwiązań?
  1. function checkAll(e){
  2. if($(e).val() == 0){
  3. $(e).val(1);
  4. $(":input[id^='arts_']").each(function() {
  5. $(this).val(1);
  6. $(this).parent().addClass('checked');
  7. });
  8. }else {
  9. $(e).val(0);
  10. $(":input[id^='arts_']").each(function() {
  11. $(this).val(0);
  12. $(this).parent().removeClass('checked');
  13. });
  14. }
  15. }
Go to the top of the page
+Quote Post
Lion
post 8.07.2016, 10:57:06
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

Ostrzeżenie: (0%)
-----


Jeśli lista checkboxów jest stała to możesz ją sobie zapamiętać aby kolejnym razem nie przeszukiwać drzewa DOM.


--------------------
Go to the top of the page
+Quote Post
RollDev
post 8.07.2016, 12:56:37
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

Ostrzeżenie: (0%)
-----


No tak, nie pomyślałem. Coś jeszcze zrobić, aby to było "ładniejsze" ?
Go to the top of the page
+Quote Post
trueblue
post 8.07.2016, 15:30:08
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. function checkAll(e){
  2. var newVal=$(e).val()^1;
  3. $(e).val(newVal);
  4. $(":input[id^='arts_']").val(newVal).parent().toggleClass('checked');
  5. }


Do ładnych checkboxów nie potrzebujesz skryptów. https://codepen.io/CreativeJuiz/pen/BiHzp (checkbox label hack).


--------------------
Go to the top of the page
+Quote Post
RollDev
post 9.07.2016, 09:28:04
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 8.07.2016, 16:30:08 ) *
  1. function checkAll(e){
  2. var newVal=$(e).val()^1;
  3. $(e).val(newVal);
  4. $(":input[id^='arts_']").val(newVal).parent().toggleClass('checked');
  5. }


Do ładnych checkboxów nie potrzebujesz skryptów. https://codepen.io/CreativeJuiz/pen/BiHzp (checkbox label hack).


@trueblue Dobra robota! Doceniam, że pomogłeś mi już kilka razy! Dzięki!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 06:04