2010-10-07 93 views
0

我正在嘗試使工作成爲我網站上存在的一項功能,但對於iPhone版Safari而言效果不佳。Safari的iPhone無法正確評估jQuery?

嗯,我有一個「禮」元素:

.. 
    <li><input id='showOrHide' type='button' value='show or hide'/></li> 
    <li><input type='text' value='ok'/></li> 
.. 

當我點擊「顯示或隱藏」按鈕,文本輸入應該出現或消失。

然後,我有一個jQuery函數結合的點擊:

$("#showOrHide").click(function(){ 
    if($(this).parent().next().is(':visible')) 
    $(this).parent().next().hide('slow'); 
else 
    $(this).parent().next().show('slow'); 
}); 

的問題在於,如果顯示元件時,Safari隱藏它然後顯示它。

所以我認爲Safari會檢查元素是否可見。如果可見,則隱藏它,然後轉到「其他」選項。在那裏,它檢查元素是否可見。它會發現它不可見,然後將顯示它。

有沒有解決方案,而不使用extrernal JavaScript框架(但jQuery)?

感謝, 問候

+0

我不太明白你的代碼是試圖做。 所以當你點擊'showOrHide'按鈕時,它應該切換第二個li元素的可見性? – 2010-10-07 15:46:43

回答

1

嗯,你可以使代碼有很多通過使用jQuery toggle函數來顯示/隱藏簡單的元素。

不知道這會解決你所看到的問題......

的代碼將被:

$("#showOrHide").click(function(){ 
    $(this).parent().next().toggle('slow'); 
}); 
+0

我試過了你的功能:它可以在桌面瀏覽器(鉻合金,Safari瀏覽器)上完美工作,但是在iPhone的Safari上,它完成了我所描述的功能:立即顯示並隱藏隱藏的元素。 – Zakaria 2010-10-08 08:22:57