我正在使用此代码:
$('.ui-accordion').bind('accordionchange', function(event, ui) {
$(this).next().next().css({'background-image':'images/green-bg.jpg'});
//ui.newHeader // jQuery object, activated header
//ui.oldHeader // jQuery object, previous header
// ui.newContent // jQuery object, activated content
// ui.oldContent // jQuery object, previous content
});
尝试在更改后更改PREVIOUS标头的背景图像。我看到jquery文档为oldHeader提供了对象,但我正在尝试更改该元素的CSS。有什么想法我会怎么做?
所以你去下一个它变绿了,然后当前的变成红色。
答案 0 :(得分:2)
你就是拥有它。这对我有用:
$('#div0').bind('accordionchange', function(event, ui) {
addMessage("change");
if (typeof ui.oldHeader != "undefined") {ui.oldHeader.css({'background': 'Pink'});}
if (typeof ui.oldContent != "undefined") { ui.oldContent.css({'background': 'White'}); }
if (typeof ui.newHeader != "undefined") {ui.newHeader.css({'background': 'Yellow'}); }
if (typeof ui.newContent != "undefined") { ui.newContent.css({'background': 'LightGreen'}); }
});
当我打开div时,open div的标题获得黄色bg,内容获得绿色bg。刚刚关闭的标题变成粉红色。您需要测试undefined
,因为在关闭div而不打开另一个div时,newHeader / Content是未定义的。同样,在打开div时,以前所有关闭时,oldHeader / Content都是未定义的。
工作示例:http://jsbin.com/arebi4/4
我通过在调试器中运行页面(Firebug或IE8 F12调试器工作)并打破accordionchange函数来解决这个问题。