• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z addeventlistener, inputem i powiązaniem

Object Storage Arubacloud
0 głosów
193 wizyt
pytanie zadane 24 stycznia 2017 w JavaScript przez niezalogowany

Witam, ciężko będzie mi wytłumaczyć mój problem, ale mam nadzieję, że ktoś mnie zrozumie. Mam taki układ: 

var el = document.querySelectorAll('.propozycje'); // Tabele 
var input = document.querySelectorAll('.info'); // inputy, które znajdują się w środku tych tabel

 

Tabele maja różne data-nazwa, które posiadają różne wartości. Oczywiście mógłbym to zrobić na divach, ale akurat w tym przypadku bardziej pasowały mi tabele. Zrobiłem możliwość zaznaczania i odznaczania tych tabeli:

for (var i=0; i<el.length; i++){
          el[i].addEventListener('click', function(e) {
            var val = parseInt(this.dataset.val);

            if(val === 0){
              this.classList.add('propozycje-selected');
            }else{
             this.classList.add('propozycje-unselected');}
         });
} 

Dodatkowo pushuję sobie dane z data-nazwa do tablicy obiektów. 

 

Wszystko dobrze działało dopóki nie dodałem inputów, które mogą być wypełnione lub nie. Do tej samej pętli dodałem nowy listener i skorzystałem z zdarzenia blur. 

input[i].addEventListener("blur", function(){

});

i przyznam, że się w tym wszystkim pogubiłem. Mam parę problemów: 1. Jeśli kliknę na jeden input, a potem od razu na drugi, to jednocześnie robi mi się nieskończona pętla 2. Jeśli kliknę najpierw na tabelę, a dopiero potem bedę chciał wpisać wartość, to obiekt będzie z wartością inputa NULL, ponieważ wartość została dopiero wpisana potem. Ewentualnie mógłbym jakoś edytować ostatni obiekt z tablicy?  Może mógłbym jakoś zrobić jedno zdarzenie związane z tymi dwoma elementami? 4. Jeśli zaznaczę tabelę, a dopiero potem klikne na input żeby coś zaznaczyć, to zadziała mi na nowo zdarzenie z tabeli, więc input będzie aktywny, ale tabela się odznaczy. 

komentarz 24 stycznia 2017 przez niezalogowany
"Ale nazwy zmiennych to po angielsku" :D
komentarz 24 stycznia 2017 przez niezalogowany
Haha. :D Część jest, ale nie zmieniłem wszędzie. :D

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 370 wizyt
0 głosów
3 odpowiedzi 496 wizyt
+1 głos
2 odpowiedzi 360 wizyt

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...