bootstrap popover不会在手机关闭

时间:2015-06-14 11:49:23

标签: javascript twitter-bootstrap

我已将我的html简化为我在此处发布的代码。 首先,我有一个空的p-tag。然后是包含popover-anchor的table-tag。然后是另一个空的p-tag。 当我在桌面上时,单击锚点并显示弹出窗口后,无论我在哪里单击页面,弹出窗口都将关闭。 但是,当我在移动设备上(Safari iOS)时,只有当我点击/点击页面末尾时,弹出框才会关闭。这意味着,最后一个空p-tag之后的区域。 我研究了很多。我不确定,但也许可能是关于听“轻拍”而不是“点击”?我真正不明白的是为什么在体内点击外部标签会使弹片消失。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/components/bootstrap/dist/css/bootstrap.css" rel="stylesheet">
<link href="/components/bootstrap/dist/css/bootstrap-theme.css" rel="stylesheet">
<script type="text/javascript" src="/components/jquery/dist/jquery.js">     </script>    
<script type="text/javascript" src="/components/bootstrap/dist/js/bootstrap.js"></script>
<script>
$(function () {
$('[data-toggle="popover"]')
.on('click',function(e){
e.preventDefault();
})
.popover();
})
</script>
</head>
<body> 
<p style="background-color:green">&nbsp;</p>
<table border=1 cellspacing=2  cellpadding=2 >
    <tr>
       <td><b>Lowest</b></td>
    </tr>
    <tr>
       <td>
            <a 
                data-html="true"  data-trigger="focus" tabindex="0" role="button" href="#" data-toggle="popover" data-placement="right" 
                data-content="<div>This is HTML</div>">
                    one
            </a>
       </td>
   </tr>
</table>
<p style="background-color:yellow">&nbsp;</p>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

问题是在Iphone onclick上的body元素不起作用。 尝试编写一个简单的html页面,其中包含以下代码:     $(function(){         $(&#39; body&#39;)。on(&#39;点击touchstart&#39;,function(e){             警报(&#34;点击&#34);         });     }); 好吧,在Iphone上不会有任何警报。 所以关注这一点,我发现有一些解决方法。 一个解决方法是在你想要点击的元素上有一个css-directive(在我的例子中是所有body-tag,所以在那个cse中你可能想要一些包装器来包含所有的body-content)。该指令简单地说: 光标:指针;

由于您可能不希望所有元素都显示指针,您可能需要检测客户端是否为iOS。