2010-10-07 52 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