2016-02-01 6 views
0

Я использую аккордеон jQuery и хочу, чтобы выбранная панель выглядела иначе, чем пользовательский интерфейс jQuery. Чтобы понять это, я не хочу иметь класс «ui-state-active» в активном заголовке, и я не знаю, как это реализовать.Запретить jQuery аккордеон от добавления ui-state-active

Моя текущая попытка:

$('#MyAccordion').accordion({ 
    heightStyle: "content", 
    collapsible: true, 
    active: 0, 
    activate: function() { 
     $('#MyAccordion h3').removeClass("ui-state-active"); 
    }, 
    create: function() { 
     $('#MyAccordion h3').removeClass("ui-state-active"); 
    }, 
    beforeActivate: function() { 
     $('#MyAccordion h3').removeClass("ui-state-active"); 
    } 
}); 

JS Fiddle Демо здесь: https://jsfiddle.net/SchweizerSchoggi/u2c6zcy6/1/

Вы можете видеть, заголовок выбранной панели становится белым на мгновение прямо перед класс быть снова удален. Но как я могу предотвратить заголовок панели, чтобы получить белый (получение класса ui-state-active) вообще?

+0

привет добавить CSS class- '.ui-гармошки заголовок-активные {фон: известь; } ' в вашем стиле –

+0

почему? В зависимости от других параметров я устанавливаю разные классы css на разных h3-заголовках в моем аккордеоне. Я хочу, чтобы эти классы оставались видимыми, даже если заголовок h3 активен. Поэтому я должен удалить здесь активность ui-state. – SchweizerSchoggi

+0

Если вы не хотите менять класс, вы обновляете активный обработчик событий, как 'активировать: function (event, ui) { $ (ui) .addClass (« ui-state-active »); } ' и в css изменить 'фон-цвет' на' фон' –

ответ

1

Вы можете также добавить кнопку слушателя событий:

$('#MyAccordion').on('click', '.ui-accordion-header', function(e){ 
     $(this).removeClass("ui-state-active"); 
}); 
+0

это простой ..... ouch !! Спасибо огромное! – SchweizerSchoggi

+0

Добро пожаловать! – smkrtchyan