jak dodać klasę do zmiennej przechowującej ul

0

Witam,

Chciałbym dodać dodatkową klasę do elementu ul który przechowuje w zmiennej, mam taki kod:

 
$(document).ready(function()
{
    $('.menu li').bind("click", function(e)
    {
        e = e || window.event;
        var ul = $(this).parent();
        var index = ul.children().index(this);
        var classul = $(this).parent().className;
        ul.toggleClass("odkryte");

        $(".right_menu").toggleClass("visible");
    });
});

próbowałem już w ten sposób

$($classul).toggleClass("odkryte");

i ten

$(classul).toggleClass("odkryte");

i w ten

$("." + classul).toggleClass("odkryte");

i nic a jak dodaje normalnie -

$(".0").toggleClass("odkryte");

  • to wyszystko działa jakieś pomysły
0

Mogłeś dodać jeszcze strukturę html.

Ale jeszcze raz co dokładnie chcesz zrobić, bo chyba nie do końca zrozumiałem ? Nadać klasę elementowi ul, nadrzędnemu względem tego w który kliknąłeś ?

O ile struktura jest ok to twój kod działa (element ul dostaje klase po kliknięciu).
https://codepen.io/Skayfer/pen/RagRyv

Metoda bind() jest od jakiegoś czasu już zdeprecjonowana
http://www.w3schools.com/jquery/event_bind.asp
Używaj on()
http://www.w3schools.com/jquery/event_on.asp

EDIT:
Chciałeś pobrać klasy ul do zmiennej i potem odwołać się za pomocą tych klas wewnątrz zmiennych ?

Jeśli tobie tymi różnymi metodami nie działa, sprawdź co loguje zmienna classul. U ciebie akurat chyba w ogóle klasy się nie pobierają, bo masz taki twór

var classul = $(this).parent().className;

Gdybyś pobierał za pomocą metody attr('class'), to może wystąpić sytuacja, że element ul będzie miał kilka klas, więc zmienna zwróci coś w rodzaju "abc cde efg", a ty żeby użyć tego w selektorze jquery powinieneś mieć w formie ".abc.cde.efg". Dodałem kod który to robi.

http://codepen.io/Skayfer/pen/YqQWdB

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