javascript - 通知 div - 下拉关闭

标签 javascript jquery html asp.net-mvc

我有一个类似于 stackoverflow 的通知下拉列表。因此,当用户请求通知窗口时,我使用 .show.hide 打开和关闭下拉 div。

同时,我还想在用户单击下拉 div 之外的任何位置时关闭它。

我的方法是在我的 layout.cshtml 上执行以下操作:

$(document).on("click", onDocumentClick);

function onDocumentClick(event) {
    var target = $(event.target);
    if (!target.hasClass('nbr-notifications')) {
        if ($('#notifications-dropdown').css('display') === 'block') {
            $('#notifications-dropdown').hide();
        }
    }
}

我的问题和担忧是:这是最好的方法吗?从性能 Angular ?因为我每次都处理文档上的所有点击。

最佳答案

如果您不确定该元素在哪里,就不能使用它吗?

    $('body').on("click",".nbr-notifications", onClick)
  .on('blur','.nbr-notifications',closeNotifications);

function onClick(event) {        

        if ($('#notifications-dropdown').css('display') === 'block') {
            $('#notifications-dropdown').hide();

    }
}

function closeNotifications()
{
//close it
}

此处仅响应对“nbr-notifications”类元素的点击,而不是为所有点击 Hook 事件处理程序并检查目标是否是所需的目标。

关于javascript - 通知 div - 下拉关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079281/

相关文章:

javascript - 将 jquery onclick 甚至绑定(bind)到此工具提示

javascript - 如何使用类名从多个项目的内容中使用 jQuery 构建 URL 查询字符串

javascript - react native 事件侧边栏菜单项

javascript - 将带点或逗号的字符串作为小数点分隔符转换为 JavaScript 中的数字

javascript - 让某些 td 交换位置

javascript - 悬停时更改 <li> parent 的颜色

html - Linkedin 在分享时显示 3 个不同的图像

html - 试图将我的图像定位得低一点,但它会把所有东西都拖下来

javascript - 你如何检查 xsi :nil when parsing XML in Javascript?

javascript - 使用 cypress 转移到离线模式返回了一个从 Unresolved promise