Wykonywanie operacji na divie

Odpowiedz Nowy wątek
2019-08-09 10:02

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0

Cześć,
jak mogę zrobić, aby po naciśnięciu na diva zmieniało się jego tło, ale używając do tego this?

Pozostało 580 znaków

2019-08-09 12:59

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0

A gdzie to drugie toggle wstawić? Bo faktycznie mam to class="class class".

Pozostało 580 znaków

2019-08-09 13:06

Rejestracja: 8 lat temu

Ostatnio: 2 dni temu

0

No dobra, a po co Tobie DRUGIE toggle wstawiać?

Może nie zrozumiałem Twojego JS'a. Chodzi o to, aby po kliknięciu w danego DIV'a zmienił on kolor na drugi a następnie po kolejnym przyciśnięciu wrócił do swojego pierwotnego?

edytowany 1x, ostatnio: leonpro778, 2019-08-09 13:06
Tak, o to chodzi. Pod Twoim postem ktoś napisał, aby dać toggle na dwie klasy. - Gouda105 2019-08-09 13:08
Możesz pokazać jak wygląda u Ciebie ten DIV ? - leonpro778 2019-08-09 13:09

Pozostało 580 znaków

2019-08-09 13:10

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0
leonpro778 napisał(a):

No dobra, a po co Tobie DRUGIE toggle wstawiać?

Może nie zrozumiałem Twojego JS'a. Chodzi o to, aby po kliknięciu w danego DIV'a zmienił on kolor na drugi a następnie po kolejnym przyciśnięciu wrócił do swojego pierwotnego?

<div class="produkt" id="P1" onClick="mleko(), tlo(this.id)"> <img src="img/mleko.png"/><br/> Mleko</div>

JS:

function tlo(id)
{
    if(document.getElementById(id).classList == "produkt")
    {
        document.getElementById(id).classList.toggle("produktZ");
    }else
    {
        document.getElementById(id).classList.toggle("produkt");
    }
}
edytowany 1x, ostatnio: Gouda105, 2019-08-09 13:10

Pozostało 580 znaków

2019-08-09 13:14

Rejestracja: 8 lat temu

Ostatnio: 2 dni temu

0

Klasy oddzielaj po sobie spacjami, czyli:

<div class="produkt firstClass" onclick="changeColor(this);">Jakiś tekst</div>

Klasę secondClass funkcja JS sama sobie "dopisze" nadpisując klasę firstClass. Btw. Po co Ci taki kod w JS?

edytowany 2x, ostatnio: leonpro778, 2019-08-09 13:16

Pozostało 580 znaków

2019-08-09 13:19

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0
leonpro778 napisał(a):

Klasy oddzielaj po sobie spacjami, czyli:

<div class="produkt firstClass" onclick="changeColor(this);">Jakiś tekst</div>

Klasę secondClass funkcja JS sama sobie "dopisze" nadpisując klasę firstClass. Btw. Po co Ci taki kod w JS?

Czyli js powinien wyglądać tak?:

function tlo(id)
{
    if(document.getElementById(id).classList == "produkt")
    {
        document.getElementById(id).classList.toggle("secondClass");
    }else
    {
        document.getElementById(id).classList.toggle("firstClass");
    }
}

Bo teraz jak wywoła else to div wygląda tak:
screenshot-20190809131933.png

Pozostało 580 znaków

2019-08-09 13:23

Rejestracja: 8 lat temu

Ostatnio: 2 dni temu

1

Źle, Twoja funkcja tlo(id) wygląda tylko TAK:

function tlo(id)
  {
    document.getElementById(id).classList.toggle("secondClass");
  }

Natomiast Twój DIV wygląda tak:

<div class="produkt firstClass" id="P1" onClick="mleko(); tlo(this.id)"> <img src="img/mleko.png"/><br/> Mleko</div>
edytowany 1x, ostatnio: leonpro778, 2019-08-09 13:24

Pozostało 580 znaków

2019-08-09 13:25

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0
leonpro778 napisał(a):

Źle, Twoja funkcja tlo(id) wygląda tylko TAK:

function tlo(id)
  {
    document.getElementById(id).classList.toggle("secondClass");
  }

Działa! Dziękuję za poświęcony czas.

Pozostało 580 znaków

2019-08-09 13:32

Rejestracja: 3 lata temu

Ostatnio: 18 minut temu

0

Ale zes sie uparl na to id

edytowany 1x, ostatnio: stivens, 2019-08-09 13:32
No już jak tam miał to ID to nie chciałem zmieniać ale masz rację, ładniej wygląda z this :) No i jak tych DIV'ów będzie z 1kk to zobacz ile kb mniej :D - leonpro778 2019-08-09 13:35

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0