点击某元素之外的地方,隐藏该元素,点击自身不受影响(jQuery)

点击某元素之外的地方,隐藏该元素,点击自身不受影响(jQuery)

前提: 点击一个登录按钮,弹出登录框,该登录框的背景铺满网页(登录框是背景的子元素),点击登录框之外的背景,隐藏该登录框与背景,点击自身不受影响

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决方法:

 $('.login').bind('click', function (e) { // .login为登录/注册按钮的类名
    e.stopPropagation() //阻止冒泡
    $('.loginBig').fadeIn() //fadeIn()为ES语句,淡入,直接显示和隐藏为show()、hide()
  })
  $(document).bind('click', function (e) {
    var e = e || window.event 
    var elem = e.target || e.srcElement 
    while (elem) {
          // 下面的className是类名,如果是ID选择器,改为elem.id
          // 因为该例子中还有注册的弹框,也是灰色背景的子元素,因此有||符号,写了两个,如果仅有一个子元素
          //改为  if (elem.className && elem.className == 'loginMain' {
          //如果有多个子元素,继续添加||符号
      if (elem.className && (elem.className == 'loginMain' || elem.className == 'registerMain')) {
        return //如果是test对象则直接结束,不隐藏对象。test的click事件先于此代码执行
      }
      elem = elem.parentNode
    }
    $('.loginBig').fadeOut() //淡出
  })
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值