Bootstrap Popover - how add link in text popover?

前端 未结 7 782
悲哀的现实
悲哀的现实 2020-12-13 01:56

I use bootstrap 3 popover.

And now I would like link on text popvover.

Code:



        
相关标签:
7条回答
  • 2020-12-13 02:08
    $("body").on("mousedown",".my-popover-content a",function(e){
        document.location = e.target.href;
    });
    

    does it for me: basically, take matters into your own hands. Again, this is with popover options html: true, sanitize: false, and trigger : "focus"

    0 讨论(0)
  • 2020-12-13 02:09

    Simply use the attribute data-html="true".

    <button
      data-toggle="popover"
      data-content="Link: <a href='xyz.com'>XYZ</a>"
      data-html="true">
      CLICK
    </button>
    
    0 讨论(0)
  • 2020-12-13 02:16

    You'll need to pass html option with value true while initializing popover like following.

    Demo

    JS:

    $("[data-toggle=popover]")
    .popover({html:true})
    

    HTML:

    <a href="#" role="button" class="btn popovers" data-toggle="popover" title="" data-content="test content <a href='' title='test add link'>link on content</a>" data-original-title="test title">test link</a>
    
    0 讨论(0)
  • 2020-12-13 02:25

    If you want to use focus and a link inside the popup you need to prevent the popup to close when clicking inside. The cleanest solution I found was to preventDefault clicks inside a Popup which has the .popover class

    $('body')
      .on('mousedown', '.popover', function(e) {
        e.preventDefault()
      });
    });
    
    0 讨论(0)
  • 2020-12-13 02:26

    I used data-trigger="focus" and had an issue with a link in content of popover. If mouse button is clicked on the link and hold for a while then the popover disappears and the link 'doesn't work'. Some clients complained about that.

    HTML

    <a href="#" role="button" class="btn popovers" data-toggle="popover" data-trigger="focus" title="" data-content="test content <a href='/' title='test add link'>link on content</a>" data-original-title="test title">test link</a>
    

    JS

    $("[data-toggle=popover]").popover({html:true})
    

    You can reproduce the problem here.

    I used the folowing code to fix the issue:

    data-trigger="manual" in html and

    $("[data-toggle=popover]")
    .popover({ html: true})
        .on("focus", function () {
            $(this).popover("show");
        }).on("focusout", function () {
            var _this = this;
            if (!$(".popover:hover").length) {
                $(this).popover("hide");
            }
            else {
                $('.popover').mouseleave(function() {
                    $(_this).popover("hide");
                    $(this).off('mouseleave');
                });
            }
        });
    
    0 讨论(0)
  • 2020-12-13 02:29

    Its worth noting that whilst the answers given are correct - a link will cause problems when the data-trigger="focus" is applied. As I found out from a client if the click occurs quickly on a popover the link will be actioned, should a user hold down their mousebutton then unfortunately the trigger kicks in and the popover occurs. So in short consider whether a link is necessary and plan for slooow clicks.

    0 讨论(0)
提交回复
热议问题