2010-04-06 3 views
0

Пример: http://vincent-massaro.com/map/Создание JQuery горизонтальный аккордеон близко по щелчку

В настоящее время сценарий позволяет нажать на куске аккордеона, чтобы открыть его, но он установлен, чтобы закрыть на MouseLeave. Когда я устанавливаю mouseleave в .click, он запутывается и не знает, в каком состоянии он находится. Я хочу сделать так, чтобы вы могли щелкнуть, чтобы открыть его, и нажмите, чтобы закрыть его, вместо mouseleave. Код, управляющий этим, приведен ниже, а полный скрипт находится в haccordion.js, связанном в источнике страницы. Если бы кто-то помог мне изменить этот сценарий, я был бы очень благодарен! Заранее спасибо.

+0

рассмотреть возможность использования jquery.ui аккордеоне – vittore

+0

также как * должен * работать? – vittore

ответ

0

попробовать использовать этот

$('.accordion-item-header').click(function() { 
    var item = $(this).parent().find('.accordion-item-body'); 
    item.toggleClass('open').animate({ 
     width:item.hasClass('open') ? 0: 100 
    }, 100).toggleClass('open'); 
}); 
+0

Можете ли вы объяснить, как это использовать? Я новичок в JQuery и не знаю, как это сделать и заставить его работать со сценарием, который я использую. – Vincent

0

Вы можете установить логическую переменную, чтобы представить, открыт ли аккордеон или нет, и просто проверяйте его при щелчке. (Вы должны будете переключать состояние переменной по щелчку тоже)

Edit:

Ok попробовать это. Установить булев глобальный переменный (вне события щелчка), как это:

var accordion_expanded = false; 

Тогда в вашем случае клик сделать что-то вроде этого: (я не проверял это, так что вы, возможно, придешься массировать его немного, чтобы соответствовать вашему обстоятельство)

в функции, где вы расширить свой баян поставить это:

accordion_expanded = true; 

И в функции, где вы сожмите гармонь сделать

if(accordion_expanded == true){ 
    //Contract accordion code goes here 

    accordion_expanded == false; 
} 

Удачи!

+0

Спасибо за информацию. К сожалению, я начинаю javascript/JQuery и понятия не имею, как писать код для этого. Любые предложения или примеры кода? – Vincent

Смежные вопросы