Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]toggle show/hide
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie przejdę do rzeczy mam kod (online):



skrypt działa bez problemowo , chciałbym teraz edytować tekst tylko dla klikalnego ID by plusik zamienił się w " minusik "
Jeżeli to zmieniam w samym switchu to edytuje mi dla wszystkich , nie wiem jak tam przekazać to ID.
Ktoś podpowie ?

Na pewno jakoś w ten sposób :

Kod
$('[data-klika="' + ID + '"]').text('plusik');
Neutral
Nie wiem, czy taka składnia w JQuery jest dozwolona, co Ty zaprezentowałeś z tym cudzysłowem w środku.

Poczytaj po co są w ogóle stosowane w programowaniu znaki cudzysłowia i apostrofu, bo widzę, że chyba nie do końca rozumiesz - lektura do poczytania (MDN).

Ogólnie, to napisz jaki dostajesz błąd, ponieważ u mnie ten błąd chyba nie występuje.

Kod
$("[data-klika='"+one+"']").text('plusik');
casperii
@Neutral wrzuciłem stary JS, obecny masz tutaj : https://jsfiddle.net/jze9v4gp/
błędów nie rzuca, chodzi o to jak do zmiennej "one" wrzucić ten ID który był klikalny.

Dobra temat nieaktualny, gdyby ktoś szukał rozwiązania to: https://jsfiddle.net/jze9v4gp/2/
Neutral
Wprowadziłem Cię chyba w błąd, ponieważ w tym kontekście nieważne jest, czy napiszesz tak data-x="hello", czy tak data-x='hello'.

Proponuję, abyś zabrał się raczej do nauki czystego (pure) JavaScript, a nie z bibliotekami, dopóki nie opanujesz języka w stopniu zadawalającym.

Kod
.hiddens {
  display: none;
  box-shadow: 2px 4px 2px 4px grey;
}
.clicks {
  background: lightgreen;
  border: 2px outset green;
  display: inline-block;
  padding: 4px;
  min-width: 1em;
  min-height: 1em;
  text-align: center;
  user-select: none;
}


  1. <body style="background: darkgoldenrod;">
  2.  
  3.  
  4. <p>
  5. <div class="clicks">+</div>
  6. <div class="hiddens">hidden</div>
  7. </p>
  8.  
  9. <p>
  10. <div class="clicks">+</div>
  11. <div class="hiddens">hidden</div>
  12. </p>


Kod
function toggle_el(e) {
  let clicks = document.querySelectorAll('.clicks');

  for(let i=0;i<clicks.length;i++) {
    let computed_style = window.getComputedStyle(document.querySelectorAll('.hiddens')[i]).getPropertyValue('display');
    if(clicks[i] === e.target && computed_style == 'none') {
       document.querySelectorAll('.hiddens')[i].style.display = 'block';
       clicks[i].style.background = 'pink';
       clicks[i].textContent = '-';
    } else if(clicks[i] === e.target && computed_style == 'block') {
       document.querySelectorAll('.hiddens')[i].style.display = 'none';
       clicks[i].style.background = 'lightgreen';
       clicks[i].textContent = '+';
    }
  }
}

document.addEventListener('click', toggle_el, false);


  1. </body>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.