edo1z blog

プログラミングなどに関するブログです

他のところをクリックしたら閉じる javascript

下のスクリプトでやったらパソコンと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見えてるかチェック先にやった方がいいか。