2012-03-05 45 views
1

當我使用slideToggle()和元素時,Chrome中出現問題。jQuery slideToggle()在Chrome/Safari中的奇特行爲

編輯:例如here,點擊鏈接A幾次,你會明白我的意思。

的HTML是沿着線:

<div> 
    <a>Link A</a> 
    <a id="myLink">Link B</a> 
</div> 

浮動所有的鏈接以非常簡單的CSS水平方向左:

a{ 
    float: left; 
    margin-right: 20px; 
    height: 20px; 
    width: 20px; 
} 

#myLink{ 
    display: none; 
} 

中的JavaScript地表示myLink的和隱藏它之間切換一些事件。

$('#myLink').slideToggle(); 

當slideToggle()被第一次調用時,一切都很好地工作;該鏈接看起來與另一個鏈接水平對齊。但是,如果我再次隱藏它,那麼當它重新出現在Chrome/Safari中時,鏈接將出現在另一個鏈接下方(而不是旁邊)。另外,我注意到如果我在Chrome中使用開發工具並單擊元素,它會自行修復並將鏈接移動到與另一個鏈接水平內聯。

任何人都知道在WebKit中的slideToggle()的任何問題?

+1

設置和示例在這裏http://jsfiddle.net – Henesnarfel 2012-03-05 16:00:57

+0

更新了一個例子。 – Alex 2012-03-05 16:20:35

+0

也是非常有趣的東西,在鉻中,當我檢查「鏈接B」時,在「鏈接A」旁邊增加了該元素。 – MCSI 2012-03-05 17:20:36

回答

2

不要浮動DIV或者你可以給它一個像素寬度。

+0

感謝您的回答Diodues,無論如何繞過這個問題,沒有使用未定義的浮動,因爲我需要它是一個沒有寬度的浮動。 – Alex 2012-03-05 16:40:32

+0

使用內聯塊代替浮動標籤,但不適用於IE 6或7.您的選擇。 – 2012-03-05 16:43:46