3 回答

TA貢獻1777條經驗 獲得超3個贊
這原本是討論中的手風琴jQuery用戶界面文檔:
注意:如果要一次打開多個部分,請不要使用手風琴
手風琴不允許同時打開一個以上的內容面板,為此需要付出很多努力。如果您正在尋找一種可以打開多個內容面板的小部件,請不要使用它。通常,它可以用幾行jQuery代替,如下所示:
jQuery(document).ready(function(){
$('.accordion .head').click(function() {
$(this).next().toggle();
return false;
}).next().hide();
});
或動畫:
jQuery(document).ready(function(){
$('.accordion .head').click(function() {
$(this).next().toggle('slow');
return false;
}).next().hide();
});
“我可能是個白癡”-如果您不閱讀文檔,那么您不是白癡,但是如果遇到問題,通??梢约涌煺业浇鉀Q方案的速度。

TA貢獻1898條經驗 獲得超8個贊
在類似的線程中發布此內容,但認為在這里也可能與此相關。
使用jQuery-UI手風琴的單個實例來實現
正如其他人指出的那樣,Accordion小部件沒有API選項可以直接執行此操作。但是,如果由于某種原因必須使用小部件(例如,您正在維護現有系統),則可以通過使用beforeActivate事件處理程序選項來顛覆和模擬小部件的默認行為來實現。
例如:
$('#accordion').accordion({
collapsible:true,
beforeActivate: function(event, ui) {
// The accordion believes a panel is being opened
if (ui.newHeader[0]) {
var currHeader = ui.newHeader;
var currContent = currHeader.next('.ui-accordion-content');
// The accordion believes a panel is being closed
} else {
var currHeader = ui.oldHeader;
var currContent = currHeader.next('.ui-accordion-content');
}
// Since we've changed the default behavior, this detects the actual status
var isPanelSelected = currHeader.attr('aria-selected') == 'true';
// Toggle the panel's header
currHeader.toggleClass('ui-corner-all',isPanelSelected).toggleClass('accordion-header-active ui-state-active ui-corner-top',!isPanelSelected).attr('aria-selected',((!isPanelSelected).toString()));
// Toggle the panel's icon
currHeader.children('.ui-icon').toggleClass('ui-icon-triangle-1-e',isPanelSelected).toggleClass('ui-icon-triangle-1-s',!isPanelSelected);
// Toggle the panel's content
currContent.toggleClass('accordion-content-active',!isPanelSelected)
if (isPanelSelected) { currContent.slideUp(); } else { currContent.slideDown(); }
return false; // Cancels the default action
}
});
添加回答
舉報