2012-08-23 31 views
5

Mam menu akordeonowe, które zostało opracowane przy użyciu czystego css3. Obecnie otwiera menu po najechaniu na niego, ale chcę, aby był otwarty po kliknięciu. Ho mogę to osiągnąć?Konwertuj akordeon na hover na onclick

Jeszcze jedna pomoc. Obecnie zawartość div znajduje się po prawej stronie nagłówka, ale muszę ją otworzyć po lewej stronie.

Element div powinien mieć automatyczną szerokość na podstawie treści.

Oto DEMO

+1

spróbuj użyć: aktywny zamiast: hover – anderssonola

+0

Używanie active zamyka zawartość div, gdy zostawiam przycisk myszy. Chcę, aby kliknięcie przełączało się – Sowmya

Odpowiedz

3
$('h3','.horizontalaccordion ul li').on('click',function() { 
    $(this).closest('li').toggleClass('hover').siblings().removeClass('hover'); 
});​ 

FIDDLE

+0

Ale kiedy wyjmuje się kursor z elementu div, zawartość się odsuwa. Czy możesz sprawdzić tat – Sowmya

+0

'.horizontalaccordion> ul> li.hover> div {display: block; } 'zamiast' .horizontalaccordion: hover> ul> li.hover> div {display: block; } '- http://jsfiddle.net/thebabydino/a545y/14/ – Ana

+0

@Ana Awesome !! To działa. Ostatnia pomoc. Jak mogę otworzyć panel z treściami, aby otworzyć lewą stronę? – Sowmya

0

myślę, że nie wystarczy kliknięcie ale także chciałby zamknąć wcześniej otwarte panele, należy sprawdzić ten kod:

$('h3','.horizontalaccordion ul li').click(function() { 
    $('*[class*=hover]').removeClass('hover'); // close all opened tabs 
    $(this).closest('li').addClass('hover'); // open the currently clicked one 
});​ 

jsFiddle Example

Mam nadzieję, że to działa dla Ciebie!

+0

działa, ale znowu ten sam problem. rozwiń jedno menu wyjmij kursor z akordeonu, a następnie ukrywa zawartość. Pls chk – Sowmya

+0

Właśnie sprawdziłem to w Chrome i wszystko jest gładkie? Czy możesz mi powiedzieć, jaka jest twoja przeglądarka? –