Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Problem z addeventlistener, inputem i powiązaniem

$
0
0

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. 


Viewing all articles
Browse latest Browse all 21942

Trending Articles