在自定义jQuery插件中使用mouseup函数

时间:2013-05-11 11:46:11

标签: jquery jquery-plugins

我为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);

1 个答案:

答案 0 :(得分:0)

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

点击任意位置(文档)时,检查点击的元素是否在.socialbox内,检查它是否在某个地方有该类,如果没有,请隐藏.socialbox