2010-06-16 76 views
0

我的手风琴工作正常,但我有一个JS问题,禁止它正确显示。jQuery UI - 手风琴显示问题

http://jsfiddle.net/frEWQ/4/

  1. 的JS的“kwick”分区后,不申请的.ui来访者,都到下面H3已完成合拢,动画之后给人一种奇怪的截止边界

有什么建议吗?

感谢

 // find elements to show and hide 
    var toShow = clicked.next(), 
     toHide = this.active.next(), 
     data = { 
      options: o, 
      newHeader: clickedIsActive && o.collapsible ? $([]) : clicked, 
      oldHeader: this.active, 
      newContent: clickedIsActive && o.collapsible ? $([]) : toShow, 
      oldContent: toHide 
     }, 
     down = this.headers.index(this.active[0]) > this.headers.index(clicked[0]); 

    this.active = clickedIsActive ? $([]) : clicked; 
    this._toggle(toShow, toHide, data, clickedIsActive, down); 

    // switch classes 
    this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all") 
     .find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header); 
    if (!clickedIsActive) { 
     clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top") 
      .find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected); 
     clicked.next().addClass('ui-accordion-content-active'); 
    } 

    return; 

回答

1

更新: 你可以修改源,但是这不是一般的好主意。

因为它期待着这种特定的格式,所以你可能需要用CSS做一些棘手的事情来避免闪烁。

  • 如何在h3的所有角落始终具有完整的20px边界半径,即使元素已展开。
  • 让内容使用如下的一些样式: padding-top:20px; position:relative; top:-20px;或类似的东西,将垫20px,然后通过拉回来纠正位置。这样,当它展开时,它实际上与h3底角重叠。如果这不起作用padding-top:20px; margin-top:-20px;可能。

在我看来,这是有效的。我会在你的jfiddle帖子上尝试它,但你还没有把CSS源代码放入CSS框架中。

+0

是的,我实际上试图包装h3和div在一起,但它似乎打破了JavaScript ...没有想到把h3内的div,我想这可以工作,虽然不合法.. ..我知道它与编辑JavaScript代码加在一起顶部 – 2010-06-16 18:44:32

+0

您可以使用另一个div而不是h3来避免冲突。 – derrickp 2010-06-16 18:52:06

+0

是的,就像我说过的那样,但是它打破了JavaScript。我认为它期待一个特定的结构才能正常运行。我已经使用我的调查结果更新了我的问题和代码 – 2010-06-16 18:54:03