#menu-button
をクリックすると、#wrap-footer
というメニューが表示されます。メニュー以外のページをクリックすると、スライドが元に戻ります。iPhoneでjqueryトグルクラスのバグ
メニューが表示されているときは、#menu-button
に「menu-open」(スタイリング用)というクラスが追加されています。メニューが再び非表示になると、クラスは削除されます。 iPhoneはこれらを認識しないよう
注、私は、セレクタ#wrap-header
、#wrap-pre-footer
、#wrap-content
だけではなくhtml
かdocument
を使用していました。
$(document).ready(function(){
$("#menu-button a").hide();
$('#menu-button').append('Menu');
$('#wrap-header,#wrap-pre-footer,#wrap-content').click(function() {
$('#wrap-footer').slideUp('slow');
$('#menu-button').removeClass('menu-open');
});
$('#menu-button').click(function(event){
event.stopPropagation();
$('#menu-button').toggleClass('menu-open');
$('#wrap-footer').slideToggle('slow');
});
$("#wrap-footer").click(function(e) {
e.stopPropagation();
});
});
デスクトップブラウザではすべて問題ありません。しかし、iPhoneではslideToggleは正常に動作しますが、toggleClassはクラスを削除しません。したがって、メニューが開いている場合は、#menu-button
または#wrap-footer
ではなく、メニューを最小化してクラスを削除しますが、#menu-button
をクリックするとメニューが最小化され、クラスは削除されません。
ありがとうございました