javascript - jQuery 中的 .not() 函数

标签 javascript jquery coffeescript

我的表单上有两个按钮。用户单击任一按钮,就会显示相应按钮的下拉菜单。现在,用户随机单击表单上的任意位置。所以现在我希望隐藏下拉菜单。

我的代码有:

$('html').not( "button.btn.dark.dropdown.copy" ).on 'click', (e) ->
    if $('ul.drop-menu.copy-menu').css('display') != 'none'
      $('ul.drop-menu.copy-menu').hide() 

$('html').not( "button.btn.dark.dropdown.move" ).on 'click', (e) ->
    if $('ul.drop-menu.move-menu').css('display') != 'none'
      $('ul.drop-menu.move-menu').hide()

在上面的代码中,它适用于移动按钮,但不适用于复制按钮。我无法找到同样的原因。任何帮助将不胜感激。

最佳答案

使用选择器检查最近的目标,

假设显示内容的弹出窗口位于 .popup 类中,然后使用它的类名来检查目标

$('body').click(function (e) {
    if (!$(e.target).closest('.popup').length) { // exists only when you click on popup area otherwise will return false and will hide popup
        $('ul.drop-menu.move-menu').hide()
    }
})

关于javascript - jQuery 中的 .not() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763729/

相关文章:

javascript - Rails js.erb 不工作

jquery - 每个() jQuery 中的 Change()

javascript - 在 CoffeeScript 中链接 jquery 方法和参数

node.js - 使用 Mocha 和 Chai 断言测试 NodeJS 代码时,我怎么能期望从回调中抛出异常?

Javascript 测验 - 通过 jQuery 上的 next() 方法到达下一个同级的问题

javascript - 在 Laravel 中使用 Ajax 请求进行搜索

php - 是否可以动态更改网页的 URL?

jquery - 在执行回调之前等待 .each() .getJSON 请求完成

javascript - 访问 iframe 的 "unnamed"parent

angularjs - 在指令属性上使用过滤器会导致 $digest 循环中的无限循环