下のスクリプトでやったらパソコンとAndroidはうまく閉じるけど、iPhoneで試したら閉じない。
function toggle_sub_menu(){ $('#sub_menu').slideToggle(300); event.stopPropagation(); } $(document).on('click', 'body', function(e){ if(!$(e.target).is('.el-icon-lines')){ if(!$(e.target).is('#sub_menu') && !$(e.target).closest('#sub_menu').size()){ if($('#sub_menu').is(':visible')){ $('#sub_menu').slideUp(200); } } } });
safariも大丈夫だけどiPhoneだけだめで、bodyのクリックイベントを受けてないようだ。 iPhoneのclickイベントの挙動
ここに色々書いてくれてるのでこれみたら解決しそう。 sub_menu見えてるかチェック先にやった方がいいか。