JavaScript - 在外面点击不在手机上工作时隐藏元素

时间:2015-04-09 22:03:54

标签: javascript jquery mobile

隐藏模态窗口在使用此代码的桌面计算机上正常工作

$(document).mouseup(function (e){
    if ($("#full_window_dim").is(':visible') && !$("#hodnotenie_hl_okno").is(e.target) && $("#hodnotenie_hl_okno").has(e.target).length === 0){
        $("#full_window_dim").fadeOut();
        $('html, body').removeClass('stop-scrolling');
}
});

但是此代码无法在手机上运行(我尝试使用iPhone 5 - Safari)

当用户在手机上点击窗外时,如何隐藏元素?

2 个答案:

答案 0 :(得分:1)

您可以将touchstart用于手机,因为大多数设备都不了解鼠标事件。

这是代码。你可以包含任意数量的活动。

function HideModal(){
    if ($("#full_window_dim").is(':visible') && !$("#hodnotenie_hl_okno").is(e.target) && $("#hodnotenie_hl_okno").has(e.target).length === 0){
        $("#full_window_dim").fadeOut();
        $('html, body').removeClass('stop-scrolling');
    }
}

 $(document).on({
        "touchstart": function (event) { HideModal(); },
        "mouseup": function (event) { HideModal(); }
});

答案 1 :(得分:1)

你可以定义" body {cursor:pointer}"对于您的移动css,然后Safari移动行为作为点击,而不是点击。但我不确定它是否是一种最佳方式。我只是尝试过并为我工作。