2013-05-11 3 views
0

Я создал пользовательский плагин для jQuery.использовать функцию mouseup внутри настраиваемого плагина jQuery

Я хочу скрыть .social-box, если кто-то щелкнет за его пределами.

для сокрытия 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!

Смежные вопросы