Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Usuwanie klasy z diva
Forum PHP.pl > Forum > Przedszkole
Maciek316
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ć.
muniekw
Np hide()
Maciek316
Ale ja mam coś takiego:
<div id="cos" class="active"></div>
I chce tylko usunąć class.
pitu
http://api.jquery.com/removeClass/
Maciek316
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.
muniekw
Możesz np coś takiego zrobić:
  1. $("#selector_potions").click(function(){
  2. $("#selector_weapons").removeClass("selector_active");
  3. });
viking
Skoro masz i tak goły JS nie ma sensu używać jquery. Zobacz https://developer.mozilla.org/en-US/docs/DO...ement.classList
Maciek316
@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.
muniekw
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.
Maciek316
<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>
muniekw
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>
Maciek316
Dzięki ci wielkie, pomogło smile.gif
Czyli coś ala rozpoczęcia dokumentu jq o ile się nie mylę 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
muniekw
Cytat(Maciek316 @ 14.12.2012, 14:32:55 ) *
Dzięki ci wielkie, pomogło smile.gif
Czyli coś ala rozpoczęcia dokumentu jq o ile się nie mylę 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ć.
Maciek316
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ą ;/
muniekw
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.
Maciek316
Ahh, wszystko było w porządku tylko przez moje zamotanie wpisałem dwa razy tą samą klase...
Dziękuje Ci jeszcze raz smile.gif
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.