Popover手动单击外部关闭:在Safari中不起作用

时间:2018-09-27 16:50:08

标签: jquery twitter-bootstrap twitter-bootstrap-3 popover

JSFiddle:http://jsfiddle.net/L4tjpsbn/

我有一个使用“手动”模式实现的Bootstrap弹出窗口,以便允许在外部(外部单击关闭)处进行关闭。

除了Safari之外,其他所有地方都可以使用。在Safari的Mac笔记本电脑上,一旦打开弹出窗口,便无法通过单击外部将其关闭。我只能通过再次单击源按钮来关闭它。

有什么想法吗?

object(Cake\Http\ServerRequest) {
trustProxy => false
...
[protected] data => [
    'fistname' => [
        'fistname' => 'Test',
        'lastname' => 'Test'
    ],
    'lastname' => [
        'fistname' => 'Test',
        'lastname' => 'Test'
    ],
    'upload' => [
        'tmp_name' => '/private/var/folders/g5/jjd1vc557bs21hq805lcxjk80000gn/T/phpAVXNqK',
        'error' => (int) 0,
        'name' => 'SELL5BAE2B6348272_gallery_1.png',
        'type' => 'image/png',
        'size' => (int) 200231
    ]
]
...

1 个答案:

答案 0 :(得分:1)

您必须根据文档中的说明here更改一些标记,您可以搜索“单击鼠标右键时需要的特定标记”,然后您会找到信息,基本上,您必须进行更改<button>代表<a>,并且还必须包括role="button"tabindex属性。

这是我的示例,在Safari上进行了测试:         http://jsfiddle.net/checosele/e3xtvq2y/

// Initialize Delegator Info Button popover (may not be applicable)
$('#delegatorInfoButton').popover({
    trigger: 'manual',
    html: true,
    title: '<span style="font-weight: bold;">TITLE</span>',
    content: function() {
        return $('#delegatorInfoButtonPanel').html();
    }
});
// Manual handling of Delegator Info Button popover: dismiss on focus events as well as next source-icon click
$('#delegatorInfoButton').click(function() {
    $(this).popover('toggle');
}).blur(function() {
    $(this).popover('hide');
});

这是html:

<a role="button" id="delegatorInfoButton" type="button" class="btn btn-primary elo" data-toggle="popover" data-placement="right" tabindex="0">
  Open Popover
</a>

<!-- Delegator Info Button Content Panel: Initially empty, will be populated after Ajax fetch upon selection -->
<div id="delegatorInfoButtonPanel" style="display: none">
  CONTENT HERE
</div>