我为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 :(得分:0)
$(document).on('click', function(e) {
if ( ! $(e.target).closest('.social-box').length ) {
$('.social-box').hide();
}
});
点击任意位置(文档)时,检查点击的元素是否在.socialbox
内,检查它是否在某个地方有该类,如果没有,请隐藏.socialbox
!