jQuery学习——clickoutside应用

24 篇文章 0 订阅
11 篇文章 0 订阅

  自定义clickoutside事件,使得点击绑定元素之外的位置可以执行handler。这个方法可以用event.special来实现,方法如下

  

(function($){
   var elems = $([]);
   $.event.special.clickoutside = {
     setup: function(){
        var elem = $(this);
        elems.add(elem);
       
        if(elems.length === 1){
           elems.bind('click',handler_event);
        }
    },
     teardown: function(){
        elems = elems.not(this);
        if(elems.length === 0){
           elems.unbind('click',handler_event);
        }
    },
    add:function(handlerObj){
       var old_handler = handlerObj.handler;
       handlerObj.handler = function(event,elem){
       event.target = elem;
       old_handler.apply(this, arguments);
    };
    }
};
  function handler_event(event){
    $.each(elems,function(){
       var elem = $(this);
       if(!elem === event.target && !elem.has(event.target).length){
          elem.triggerHandler('clickoutside', [event.target]);
      }
    });
  }
})(jQuery);

使用的时候:

//点击模态框的外部,隐藏模态框
$("#modal).bind('clickoutside',function(){
    $(this).hide();
});


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值