jQuery学习——clickoutside应用

来源:互联网 发布:交大附中嘉定分校知乎 编辑:程序博客网 时间:2024/06/07 01:46

  自定义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
原创粉丝点击