Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Usuwanie klasy z diva
Maciek316
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Witam, mam diva, i po jego kliknięciu zmieniam mu klasę na active, problem w tym żę gdy klikne w drugiego diva chcę usunąć tylko klasę z pierwszego.
Po kliknięciu w diva w onclick mam takie coś:
  1. this.className='selector_active';

Ale nie wiem jak go potem ukryć.
Go to the top of the page
+Quote Post
muniekw
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Np hide()
Go to the top of the page
+Quote Post
Maciek316
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Ale ja mam coś takiego:
<div id="cos" class="active"></div>
I chce tylko usunąć class.
Go to the top of the page
+Quote Post
pitu
post
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


http://api.jquery.com/removeClass/
Go to the top of the page
+Quote Post
Maciek316
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Nie działa mi:
  1. <span id="selector_weapons" class="selector_active" onclick="document.getElementById('weapons').style.display='block';document.getElementById('header_weapons').style.display='block';document.getElementById('potions').style.display='none';document.getElementById('artefacts').style.display='none';document.getElementById('header_potions').style.display='none';document.getElementById('header_artefacts').style.display='none';this.className='selector_active';">
  2. </span>
  3. <span id="selector_potions" onclick="document.getElementById('potions').style.display='block';document.getElementById('header_potions').style.display='block'; document.getElementById('weapons').style.display='none';document.getElementById('artefacts').style.display='none';document.getElementById('header_weapons').style.display='none';document.getElementById('header_artefacts').style.display='none';this.className='selector_active';$('selector_weapons').removeClass('selector_active')">
  4. </span>


I jeśli klikam w drugi link to nie usuwa klasy z pierwszego.
Go to the top of the page
+Quote Post
muniekw
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Możesz np coś takiego zrobić:
  1. $("#selector_potions").click(function(){
  2. $("#selector_weapons").removeClass("selector_active");
  3. });
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Skoro masz i tak goły JS nie ma sensu używać jquery. Zobacz https://developer.mozilla.org/en-US/docs/DO...ement.classList
Go to the top of the page
+Quote Post
Maciek316
post
Post #8





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


@Muniekw
Nie wiem czemu ale mi nie działa, a co do drugiej opcji, to ja potrzebuję najpierw znaleść diva po id a później usunąć z niego daną klasę.
Kod mogę przerobić po jquery.
Go to the top of the page
+Quote Post
muniekw
post
Post #9





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Maciek316 @ 14.12.2012, 13:18:07 ) *
@Muniekw
Nie wiem czemu ale mi nie działa, a co do drugiej opcji, to ja potrzebuję najpierw znaleść diva po id a później usunąć z niego daną klasę.
Kod mogę przerobić po jquery.


W jaki sposób podczepiasz skrypt? Sprawdź czy masz dobrze podpiętą bibliotekę jQuery jeśli korzystarz z tego rozwiązania.
Go to the top of the page
+Quote Post
Maciek316
post
Post #10





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>
Wszystkie skrypty jquery i js mi normalnie działają.
I tak jak mówiłeś:
  1. <script>
  2. $("#selector_potions").click(function(){
  3. $("#selector_weapons").removeClass("selector_active");
  4. });
  5. </script>
Go to the top of the page
+Quote Post
muniekw
post
Post #11





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


To dodaj jeszcze do tego to:
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $("#selector_potions").click(function(){
  4. $("#selector_weapons").removeClass("selector_active");
  5. });
  6. });
  7. </script>
Go to the top of the page
+Quote Post
Maciek316
post
Post #12





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Dzięki ci wielkie, pomogło (IMG:style_emoticons/default/smile.gif)
Czyli coś ala rozpoczęcia dokumentu jq o ile się nie mylę (IMG:style_emoticons/default/biggrin.gif)
Aha, a co jeśli chcę dwa divy usunąć, bo teraz się troszke mota skrypt.
  1. $("#selector_potions").click(function(){
  2. $("#selector_weapons").removeClass("selector_active");
  3. $("#selector_artefacts").removeClass("selector_active");
  4. });

i czasami zostają 2 divy na selector_Active

Ten post edytował Maciek316 14.12.2012, 14:36:24
Go to the top of the page
+Quote Post
muniekw
post
Post #13





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Maciek316 @ 14.12.2012, 14:32:55 ) *
Dzięki ci wielkie, pomogło (IMG:style_emoticons/default/smile.gif)
Czyli coś ala rozpoczęcia dokumentu jq o ile się nie mylę (IMG:style_emoticons/default/biggrin.gif)
Aha, a co jeśli chcę dwa divy usunąć, bo teraz się troszke mota skrypt.
  1. $("#selector_potions").click(function(){
  2. $("#selector_weapons").removeClass("selector_active");
  3. $("#selector_artefacts").removeClass("selector_active");
  4. });

i czasami zostają 2 divy na selector_Active


Co to jest $(document).ready(... znajdziesz np tu: opis
Jeśli chcesz usunąć klasę z dwóch divów to w sumie tak jak robisz powinno być działać.
Go to the top of the page
+Quote Post
Maciek316
post
Post #14





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Ale nie działa,
Jeśli 1 div jest na active i kliknę w 2 to pięknie usuwa z 1 diva klasę.
Jeśli wróce z 2 do 1 to zostają już obydwie.
Następnie jeśli kliknę w 3 to znikają 2 pierwsze.
Jest jeszcze kilka kombinacji gdzie tak zostają ;/
Go to the top of the page
+Quote Post
muniekw
post
Post #15





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zasada działania tego skryptu jest taka:
1. Wybierasz selektor który Cię interesuje.
2. Na zdarzenie click wykonaj funkcję.
3. Usuń klasę active z wybranego selektora.

Jeśli chcesz usuwać klasę z innych selektorów (np divów) to musisz zrobić analogicznie tylko z innymi wartościami.
Go to the top of the page
+Quote Post
Maciek316
post
Post #16





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Ahh, wszystko było w porządku tylko przez moje zamotanie wpisałem dwa razy tą samą klase...
Dziękuje Ci jeszcze raz (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.09.2025 - 22:17