Bootstrap Popover - 点击任意位置即可关闭

时间:2013-08-20 21:49:38

标签: css twitter-bootstrap

我只是想知道这是否是一个很好的方法,或者我是不是很愚蠢。基本上,身体中的任何点击都被验证为不是弹出框,或者是弹出框内。如果不是,那么它会隐藏所有的弹出窗口。

$("body").on('click', function(e) {
if(!$(event.target).hasClass('with-popover') && !$(event.target).parents('.with-popover').length && !$(event.target).parents('.popover').length){
$(".with-popover").popover('hide');
};
});

1 个答案:

答案 0 :(得分:2)

这是愚蠢的吗?没有。只需进行一些修改就可以提高效率。

$('body').on('click', function(event) {
    var target = $(event.target); // One jQuery object instead of 3

    // Compare length with an integer rather than with negation
    if ( ! target.hasClass('with-popover') 
         && target.parent('.with-popover').length === 0
         && target.parent('.popover').length === 0) {

         $('.with-popover').popover('hide');
    }
});

jQuery还提供了一个size()函数,它只返回长度。我再也不会使用它了,只是要注意。

我不确定return true正在做什么,最后});也许你把它包裹在一个函数中。