Javascript 第一次切换后的jQuery仅在Safari iOS5中单击3次后启动

Javascript 第一次切换后的jQuery仅在Safari iOS5中单击3次后启动,javascript,jquery,ios,mobile,Javascript,Jquery,Ios,Mobile,我在iOS 5及以下设备上使用jQuery和Safari时遇到问题… 我有一个按钮,onClick切换菜单,在iOS 5上的Safari中,在第一个菜单下方显示单击,然后在第二个菜单上关闭。。伟大的但是,在此之后,需要单击3次才能再次显示菜单。这不会发生在iOS 6或桌面浏览器上 我已经尝试用以下函数替换jQuerytoggle()函数,但这没有帮助 pull.data('menuState','closed'); $(pull).on('click', function (e) { if (p

我在iOS 5及以下设备上使用jQuery和Safari时遇到问题…
我有一个按钮,
onClick
切换菜单,在iOS 5上的Safari中,在第一个菜单下方显示
单击
,然后在第二个菜单上关闭。。伟大的但是,在此之后,需要单击3次才能再次显示菜单。这不会发生在iOS 6或桌面浏览器上

我已经尝试用以下函数替换jQuery
toggle()
函数,但这没有帮助

pull.data('menuState','closed');
$(pull).on('click', function (e) {
if (pull.data('menuState') === 'closed') {
    pull.data('menuState', 'open');
    currentMenu.show();
} else {
    pull.data('menuState', 'closed');
    currentMenu.hide();
}
return false;
});

pull
currentMenu
在我的代码中定义得更高。如果有什么帮助的话,这个网站是建立在bootstrap上的。

这里是我用来替换切换功能的,它似乎工作得很好。只需将您的需求放在奇偶函数中:

 // place this before all of your code, outside of document ready.
$.fn.ToggleFix = function(odd, even) {
    return this.each(function() {
        var Toggled = false;
        $(this).on("click", function() {
            if (Toggled) {
                Toggled = false;
                return odd.apply(this, arguments);
            }
            Toggled = true;
            return even.apply(this, arguments);
        });
    });
};
//what do you want each toggle to do
function odd() {
    $(this).animate({"left": "+=50px"}, "slow");//EXAMPLE
}

function even() {
    $(this).animate({"left": "-=50px"}, "slow");//EXAMPLE
}
//call your toggle method like this after creating the function you want above
$(function(){ 
    $("YOUR ELEMENT").ToggleFix(even, odd);
 });

结果是iOS 5触发了
窗口。稍后在我的代码中调整
功能的大小,这不是100%的最佳方法,但我检测到了要在其周围编码的版本号

function iOSversion() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
    var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
    return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
}
}

谢谢你的快速回复。。。它确实可以工作(有点),但仍然存在问题,在第一次显示和隐藏后,您必须重复单击/标记按钮,但仅限于