Make Bootstrap Popover Appear/Disappear on Hover instead of Click

后端 未结 5 2021
滥情空心
滥情空心 2020-12-04 06:02

I\'m building a website with Bootstrap\'s Popover and I can\'t figure out how to make the popover appear on hover instead of click.

All I want to do is have a popove

5条回答
  •  暖寄归人
    2020-12-04 06:34

    If you want to hover the popover itself as well you have to use a manual trigger.

    This is what i came up with:

    function enableThumbPopover() {
        var counter;
    
        $('.thumbcontainer').popover({
            trigger: 'manual',
            animation: false,
            html: true,
            title: function () {
                return $(this).parent().find('.thumbPopover > .title').html();
            },
            content: function () {
                return $(this).parent().find('.thumbPopover > .body').html();
            },
            container: 'body',
            placement: 'auto'
        }).on("mouseenter",function () {
            var _this = this; // thumbcontainer
    
            console.log('thumbcontainer mouseenter')
            // clear the counter
            clearTimeout(counter);
            // Close all other Popovers
            $('.thumbcontainer').not(_this).popover('hide');
    
            // start new timeout to show popover
            counter = setTimeout(function(){
                if($(_this).is(':hover'))
                {
                    $(_this).popover("show");
                }
                $(".popover").on("mouseleave", function () {
                    $('.thumbcontainer').popover('hide');
                });
            }, 400);
    
        }).on("mouseleave", function () {
            var _this = this;
    
            setTimeout(function () {
                if (!$(".popover:hover").length) {
                    if(!$(_this).is(':hover')) // change $(this) to $(_this) 
                    {
                        $(_this).popover('hide');
                    }
                }
            }, 200);
        });
    }
    

提交回复
热议问题