2013-05-11 75 views
0

我为jQuery创建了一个自定义插件。如果有人在其外面点击,我想隐藏.social-box在自定义jQuery插件中使用mouseup函数

隐藏div如果点击它之外,我需要这个解决方案:

Use jQuery to hide a DIV when the user clicks outside of it

,但它使用mouseup()

那么,请告诉我何做我添加的mouseup()在我下面的插件:

(function($){ 
    $.fn.extend({ 
     doAjax: function(options) { 
      var defaults = { 
       ajaxurl: ajaxurl, 
       action: '', 
      }; 

      var options = $.extend(defaults, options); 

     return this.each(function() { 
      var o =options; 
      var obj = $(this);     
      var a = $('a', obj); 

      // load FB like box 
      function call_ajax(){ 
       var ajax = $.ajax({ type: 'POST', url: o.ajaxurl, data: { action: o.action }, dataType: 'html' });      

       ajax.done(function(msg) {   
        obj.children('.social-box').append(msg); 
       }); 
      } 

      // toggle social box 
      a.click(function(e) { 
       e.preventDefault(); 
       obj.children('.social-box').slideToggle('fast');  
       if ($(this).data('loaded') == 'no'){    
        call_ajax(); 
        $(this).data('loaded', 'yes');   
       } 
      }); 
     }); 
    } 
    }); 
})(jQuery); 

回答

0
$(document).on('click', function(e) { 
    if (! $(e.target).closest('.social-box').length) { 
     $('.social-box').hide(); 
    } 
}); 

当点击任何地方(文档)检查,如果点击的元素是内.socialbox通过检查它有一个父母的地方,如果没有,隐藏.socialbox