2012-08-31 32 views
0

此代碼:jQuery的iPad上不起作用

$('#x').hide(); 
$('#y').hide(); 
alert($('#y').is(":visible")); 
alert($('#x').is(":visible")); 

時在iPad上,顯示了兩個警報這不能不如此。這怎麼可能?在Chrome上,它們顯示爲假,因爲它們應該是。

+0

如果你嘗試'alert($('#'')。 – jammypeach

+0

如果':hidden'和':visible'選擇器不可靠,則可能需要測試'.css('display')'值或檢查'.height()> 0'。 – jammypeach

回答

2

你應該使用回調參數檢查:只有當動畫完成

$('#x').hide(0, function() { 
    alert($('#y').is(":visible")); 
}); 

的功能將被執行。 雖然,這應該是沒有任何動畫...

1

我認爲jQuery不會等待動畫在下一個代碼被解釋之前完成。也許IPad比隱藏更快解釋,因此這兩個元素仍然可見。

您可以通過使用window.setTimeout

+0

我試過了,它不起作用。 –

+0

IIRC,'hide()'立即將display的css值設置爲none。可能是錯誤的,這是一段時間,因爲我需要知道:) – jammypeach

+0

不,你說得對,'隱藏()'不是一個真正的動畫。我仍然認爲,可能會有一個時間問題... –

相關問題