0

jQuery 用のカスタム プラグインを作成しました。

.social-box誰かがその外側をクリックすると非表示にしたい。

divその外側をクリックした場合に非表示にするには、次のソリューションが必要です。

jQuery を使用して、ユーザーが DIV の外側をクリックしたときに 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 に答える