Javascript 第一次切换后的jQuery仅在Safari iOS5中单击3次后启动
我在iOS 5及以下设备上使用jQuery和Safari时遇到问题…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
我有一个按钮,
onClick
切换菜单,在iOS 5上的Safari中,在第一个菜单下方显示单击
,然后在第二个菜单上关闭。。伟大的但是,在此之后,需要单击3次才能再次显示菜单。这不会发生在iOS 6或桌面浏览器上
我已经尝试用以下函数替换jQuerytoggle()
函数,但这没有帮助
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)];
}
}
谢谢你的快速回复。。。它确实可以工作(有点),但仍然存在问题,在第一次显示和隐藏后,您必须重复单击/标记按钮,但仅限于