2012-01-11 3 views
0

Я хочу, чтобы добавить весь аккордеонный аспект к этому коду в jsFiddle. Где, если вы разберете один, а затем нажмите на другой, он свернет предыдущий div и отобразит последнее нажатие.Добавление адапторной установки?

Любая идея о том, как я мог бы выполнить это через этот jsFiddle?

http://jsfiddle.net/zrbFE/

Спасибо всем!

+1

использование jquery ui accordion http://jqueryui.com/demos/accordion/ –

ответ

1

http://jsfiddle.net/fAmWx/1/

Это может помочь вам начать работу в правильном направлении. Идея заключается в упрощении и повторном использовании имен классов и кода.

+0

Это работает полностью, когда я разрушаю его, хотя содержимое закрывается на полпути, а затем просто исчезает, а не полностью открывается и полностью закрывается? Есть идеи? –

+1

Не уверен. Вы можете замедлить слайд - http://jsfiddle.net/fAmWx/2/ Это помогает? – Detect

+0

Да, это сэр! Это очень помогло! Спасибо! Еще один вопрос: как мне вернуть изображение в исходный SRC, когда я нажму на другой элемент? http://jsfiddle.net/fAmWx/7/. Изображение не возвращается к исходному состоянию, когда я нажимаю на другой EXPAND ITEM. –

1

Я сделал это некоторое время назад, думаю, что это будет отвечать вашим потребностям: http://jsfiddle.net/aCaEG/2/

+0

Awesome! Но как бы применить это к моему jsFiddle Code? Видя, как я использую DIVs против Unordered List? –

+1

@AaronBrewer Оба divs и ul: s отображаются: блок. У вас не должно возникнуть проблем с применением этого в ваших div. Кажется, что jsfiddle для меня сейчас. – Johan

+0

, но как я могу применить это здесь, в моем коде? http://jsfiddle.net/zrbFE/ –

1

Мне нравится эта библиотека для этой функциональности:

http://flowplayer.org/tools/demos/tabs/accordion.html

Way легче, чем JQuery UI, и прекрасно работает. Проверьте эту страницу на примерах того, как ее пометить и вызвать в своем скрипте.

+0

У меня нет DIV, который отображается по умолчанию. Однако, спасибо! –

+1

Эта библиотека позволит вам свернуть все по умолчанию или показать специальную вкладку аккордеона или показать все из них. Он разработан, чтобы быть полностью настраиваемым. Если вы не укажете «display: block» в примере, все будет отображаться с ошибкой по умолчанию. – Jon

1

Попробуйте для jsfiddle:

function toggleMe(me) { 
    var alreadyOpen = me.is(':visible'); 
    jQuery('div[class^="content-"]').hide('fast'); 
    if (!alreadyOpen) { 
     me.show('slow'); 
    } 
} 
jQuery('.expand-one').click(function() { 
    toggleMe(jQuery('.content-one')); 
    var img = $(this).find('img'), 
     src = img.attr("src"), 
     alt = img.data("altsrc"); 
    img.attr("src", alt).data("altsrc", src); 
}); 
/// SECOND SESSION: 
///////////////////////////////////////////////////////////////////////////////////// 
jQuery('.expand-two').click(function() { 
    toggleMe(jQuery('.content-two')); 
    var img = $(this).find('img'), 
     src = img.attr("src"), 
     alt = img.data("altsrc"); 
    img.attr("src", alt).data("altsrc", src); 
}); 

Надеется, что это помогает,

Пит

+0

Это похоже на выполнение задания, но если я нажму на тот же, он закроет его, а затем снова откроет, и он также не применит код IMAGE, если я нажму на «EXPAND» Div. –

+0

Благодарю вас за помощь! –

+1

Хорошо, изменилось, чтобы свернуть, если дважды щелкнуть. Я удалил функции переключения, поскольку toggle уже встроен в jquery, нет необходимости переопределять его. Что касается кода IMAGE, в исходном HTML для вашего jsfiddle нет деклараций изображений. Добавьте их, чтобы проверить вашу замену alt и src. – pete