2010-06-16 75 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