2013-01-31 139 views
0

我在iOS 5及其下的設備上遇到jQuery和Safari的問題...
我有一個按鈕,onClick在iOS 5的Safari上切換菜單並在菜單下方顯示第一個click然後關閉第二..很大。但之後需要3次點擊才能顯示菜單。這在iOS 6或桌面瀏覽器上不會發生。jQuery在第一次觸發後纔在Safari iOS5中點擊3次後觸發

我試着用下面的代替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; 
}); 

pullcurrentMenu在我的代碼中定義的更高。如果有任何幫助,該網站建立在bootstrap上。

回答

0

這是我用來取代切換功能,它似乎運作良好。只要把你的需求函數奇偶:

// 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); 
}); 

jsFIDDLE

+0

感謝您的快速回復...它不工作(那種),但仍讓您擁有的首秀後,點擊/選項卡按鈕反覆和隱藏的問題,但只有在

0

原來的iOS 5以後被觸發window.resize功能在我的代碼,而不是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)]; 
} 
} 
相關問題