弹出框延迟显示在鼠标输入(Angularjs)上

Popover delay show on mouseenter (Angularjs)

本文关键字:输入 Angularjs 鼠标 延迟 显示      更新时间:2023-09-26

我创建了将触发器连接到弹出框的Angularjs指令。除了我想向弹出框添加延迟显示外,一切都有效。我是javascript和angular js的新手。因此,任何帮助将不胜感激。

.directive('businessCardPopup', function() {
    return {
        restrict: "A",
        link: function(scope, pop, attrs){
            scope.label = attrs.popoverLabel;
            $(pop).popover({
                trigger: "manual" ,
                container: 'body',
                template: '<div class="popover" role="tooltip" style="width: 400px;">' +
                '<div class="arrow"></div>' +
                '<h3 class="popover-title"></h3>' +
                '<div class="popover-content">' +
                '<div class="data-content"></div>' +
                '</div></div>',
                html: true,
                animation:false,
                content: '<div class="col-lg-4"></div>' +
                '<div class="col-lg-8"><p>Name</p>' +
                '<p>Position</p>' +
                '<p>Telephone</p>' +
                '<p>Email</p>' +
                '<p>Skype | Twitter | LinkedIn</p>' +
                '<p>Conversation | View Profile | Follow</p></div> ',
                placement: 'top',
                delay: {"show": 2000}
            })
                .on("mouseenter", function () {
                    var _this = this;
                    $(this).popover("show");
                    $(".popover").on("mouseleave", function () {
                        $(_this).popover('hide');
                    });
                }).on("mouseleave", function () {
                    var _this = this;
                    setTimeout(function () {
                        if (!$(".popover:hover").length) {
                            $(_this).popover("hide");
                        }
                    }, 500);
                })

        }
    }
}

我认为它应该是show: "600"而不是"show": 600

触发器类型manualdelay不适用于触发器类型手册。

请参阅文档:http://getbootstrap.com/javascript/#popovers-usage

您可以尝试trigger: 'focus'