0

我为 jQuery 创建了一个自定义插件。

.social-box如果有人点击它,我想隐藏它。

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

当用户在 DIV 外部单击时,使用 jQuery 隐藏 DIV

但它正在使用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);
4

1 回答 1

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

单击任意位置(文档)时,.socialbox通过检查它是否在某处具有该类的父级来检查单击的元素是否在其中,如果没有,则隐藏.socialbox

于 2013-05-11T11:54:11.773 回答