改变手风琴变化的背景图像 - jQuery Ui

时间:2010-03-15 15:55:33

标签: jquery user-interface accordion

我正在使用此代码:

        $('.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。有什么想法我会怎么做?

所以你去下一个它变绿了,然后当前的变成红色。

1 个答案:

答案 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函数来解决这个问题。