我一直在研究一個頁面的應用程序,並注意到我的下拉菜單有時會在他們假設隱藏的時候保持打開狀態。我調查了爲什麼會發生,並發現如果父元素隱藏,使用擴展hide
功能隱藏元素與jQuery UI是毫無價值的。爲什麼jQuery UI隱藏隱藏父元素?
這fiddle例子展示了我的意思,只是嘗試點擊Hide
& Show
按鈕,然後單擊Show parent1
並試圖隱藏元素存在。您會注意到狀態指示符會立即更新,但一旦您回到parent2
,您會看到該元素仍然可見。
我發現使用jQuery hide
沒有參數或只有通過毫秒,它確實工作正常,並停止工作,一旦我用jQuery UI參數更新它,所以我認爲它是jQuery UI而不是jQuery本身的問題。
所以我的問題是爲什麼jQuery UI以這種方式工作,是它假設工作的方式還是它是一個錯誤?
以及它將使意義上,它以這種方式工作,但有大量的關於jQuery的本身一樣古老bug報告已經以這種方式工作,這是固定的,現在只有jQuery UI以這種方式工作,我認爲這是一個錯誤,因爲假設與具有相同名稱的函數具有相同的行爲。你在JSFiddle中的例子對於這樣一個簡單的事情來說是相當複雜的,我認爲簡單地調用一個'hide'函數的回調函數是解決這個問題的簡單方法。我已經填寫了錯誤報告。 – Giedrius 2013-02-25 11:12:01
@giedrius我沒有使用'hide'回調函數,因爲你已經指定了延遲。我的方法使它看起來像工作正常..有替代方法太工作效果。我的方法感覺很簡單,因爲我只是在效果上添加了一個標誌來完成這項工作。乾杯!! – 2013-02-25 11:27:38