此代碼:jQuery的iPad上不起作用
$('#x').hide();
$('#y').hide();
alert($('#y').is(":visible"));
alert($('#x').is(":visible"));
時在iPad上,顯示了兩個警報這不能不如此。這怎麼可能?在Chrome上,它們顯示爲假,因爲它們應該是。
此代碼:jQuery的iPad上不起作用
$('#x').hide();
$('#y').hide();
alert($('#y').is(":visible"));
alert($('#x').is(":visible"));
時在iPad上,顯示了兩個警報這不能不如此。這怎麼可能?在Chrome上,它們顯示爲假,因爲它們應該是。
你應該使用回調參數檢查:只有當動畫完成
$('#x').hide(0, function() {
alert($('#y').is(":visible"));
});
的功能將被執行。 雖然,這應該是沒有任何動畫...
我認爲jQuery不會等待動畫在下一個代碼被解釋之前完成。也許IPad比隱藏更快解釋,因此這兩個元素仍然可見。
您可以通過使用window.setTimeout
我試過了,它不起作用。 –
IIRC,'hide()'立即將display的css值設置爲none。可能是錯誤的,這是一段時間,因爲我需要知道:) – jammypeach
不,你說得對,'隱藏()'不是一個真正的動畫。我仍然認爲,可能會有一個時間問題... –
如果你嘗試'alert($('#'')。 – jammypeach
如果':hidden'和':visible'選擇器不可靠,則可能需要測試'.css('display')'值或檢查'.height()> 0'。 – jammypeach