Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ JavaScript _ Aktywacja przycisku i przycisku cennika po zaznaczeniu checkboxa

Napisany przez: hejkumkejkum 19.01.2023, 18:06:59

Mam prośbę o skoryggowanie kodu.

https://codepen.io/drumknott/pen/oNMoWyj

Żeby po naciśnięciu checkboxa aktywował się przycisk Link1 oraz przycisk CENNIK w ramach kontenera ".dk-kontener" ale tylko pierwszego jeśli w pierwszym ten checkbox był kliknięty.

Obecnie działa to tak, że kliknięcie checkboxa wpływa na wszystkie elementy, są dwa kontenery ".dk-kontener", a potrzebuję by były odseparowane. Czyli jak kliknę w pierwszym to żeby tylko w jego ramach aktywowało przycisk, a jak kliknę drugi to w drugim.

Napisany przez: nospor 19.01.2023, 18:10:59

Cytat
Czyli jak kliknę w pierwszym to żeby tylko w jego ramach aktywowało przycisk

No sam sobie odpowiedziales.
Skoro przyciski i checkbox jest w tym samym kontenerze a druga para w innym no to logiczne, ze jak klikasz checkbox to masz pobrac ten kontener w ktorym klinknieto checkbox i potem w tym kontenerze masz znalezc button ktory chcesz.
A nie jak teraz lecisz globalnie po klasie i zadowolony tongue.gif

Napisany przez: hejkumkejkum 20.01.2023, 02:07:30

Tak wiem, tylko ostatni raz z javascript miałem do czynienia kilka lat temu, zapomniałem wszystko bo zajmowałem się inną dziedziną zawodowo. I niby banał a utknąłem smile.gif
Nie wiem jak to poprawnie zapisać, żeby działało jak należy, coś mi tam świta z THIS.

Cytat(nospor @ 19.01.2023, 18:10:59 ) *
A nie jak teraz lecisz globalnie po klasie i zadowolony tongue.gif


Ok, wymęczyłem ohno-smiley.gif . Czy taka postać jest ok? Czy da się to jeszcze ulepszyć?


  1. jQuery(document).ready(function() {
  2. jQuery('.dk-kontener').find('.dk-checkbox').click(function() {
  3.  
  4. if (jQuery(this).is(':checked')) {
  5. // alert ("checked");
  6. jQuery(this).closest('.dk-kontener').find('.dk_buttonnn').removeAttr('disabled');
  7. } else {
  8. // alert ("unchecked");
  9. jQuery(this).closest('.dk-kontener').find('.dk_buttonnn').attr('disabled', 'disabled');
  10. };
  11.  
  12. });
  13. });


Napisany przez: viking 20.01.2023, 07:38:56

  1. $(function() {
  2. $('.dk-kontener').on('click', '.dk-checkbox', e => {
  3. const butt = $(e.delegateTarget).find('.dk_buttonnn')
  4. butt.prop('disabled', !$(e.target).is(':checked'))
  5. })
  6. })

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)