Jquery 单击引导弹出窗口中的链接

Jquery 单击引导弹出窗口中的链接,jquery,html,twitter-bootstrap,Jquery,Html,Twitter Bootstrap,我使用Bootstrap js弹出窗口来显示带有链接的html列表。但当使用jquery选择器单击链接时,我很难抓取它们: popover的元素: <span class="popoverSpan" data-style="listPopovers" data-html="true" data-container="body" data-placement="bottom" data-trigger="focus" data-toggle="popover" tabindex="0" da

我使用Bootstrap js弹出窗口来显示带有链接的html列表。但当使用jquery选择器单击链接时,我很难抓取它们:

popover的元素:

<span class="popoverSpan" data-style="listPopovers" data-html="true" data-container="body" data-placement="bottom" data-trigger="focus" data-toggle="popover" tabindex="0" data-original-title="" title="">Menu</span>

<div>
    <ul id="forPopover" class="dropdown-menu popover-content">
        <li id="List_3" class="subgroups">
            <a id="aInner">Students</a>
        </li>
        <li id="" class="subgroups">
            <a id="bInner">Teachers</a>   
        </li>
    </ul>
</div>



$(".popoverSpan").popover({
        html: true,
        content: function () {

            return $('#forPopover').html();
        }
    });


 $('body').on('click', '.subgroups a', function (event) {
       alert('a');
    });
菜单
  • 学生
  • 教师
$(“.poporspan”).poporspan({ 是的, 内容:功能(){ 返回$('#forpover').html(); } }); $('body')。在('click','上。子组a',函数(事件){ 警报(“a”); });

上面是popover html,下面是JQuery和引导代码。警报(“a”)是间歇性的。为什么会出现这种情况?我该如何解决?谢谢

OP有点晚了,但我自己也遇到了这个问题(我在Bootstrap v3.2上)。问题在于
数据触发器=“focus”

如果你看一下
focus
,它也被描述为“下一次单击时关闭”,结果是包括对popover本身的单击,甚至单击popover中的链接。因此,在点击制作引导程序关闭popover和点击事件到达链接并实际打开新页面之间存在着一场竞赛

就我个人而言,我认为在下一次单击任何位置时使
聚焦
忽略,但在popover上单击会更直观

无论如何,我可以看到两种解决方案。第一种方法是将
数据触发器设置为手动,然后重新执行
焦点
,但如果点击弹出按钮,则不要关闭

另一个是有点不太正常,但是如果您添加延迟,使用
data delay=“500”
或者更可取的是
.popover(延迟:{show:0,hide:500})
,那么延迟会给单击事件时间,以便在解雇结束之前打开页面。后者只会在关闭时延迟,因此,因为他们将查看一个新页面,如果您不需要,延迟不是问题。注意:理论上,你也应该能够做
数据延迟=“{show:0,hide:500}”
,但我无法让它工作


第二种解决方法快速而简单,不必要的延迟应该不会太大,但要注意,在某些情况下(更快/更慢的机器、diff browser,谁知道呢?)总是有机会间歇性地遇到计时问题。所以它可能会在CI或其他方面失败。延迟越大,出现问题的可能性就越小(例如,我尝试了50次,但实际上对我来说根本不起作用),但是你要处理的延迟就越大。

OP有点晚了,但我自己也遇到了这个问题(我在Bootstrap v3.2上)。问题在于
数据触发器=“focus”

如果你看一下
focus
,它也被描述为“下一次单击时关闭”,结果是包括对popover本身的单击,甚至单击popover中的链接。因此,在点击制作引导程序关闭popover和点击事件到达链接并实际打开新页面之间存在着一场竞赛

就我个人而言,我认为在下一次单击任何位置时使
聚焦
忽略,但在popover上单击会更直观

无论如何,我可以看到两种解决方案。第一种方法是将
数据触发器设置为手动,然后重新执行
焦点
,但如果点击弹出按钮,则不要关闭

另一个是有点不太正常,但是如果您添加延迟,使用
data delay=“500”
或者更可取的是
.popover(延迟:{show:0,hide:500})
,那么延迟会给单击事件时间,以便在解雇结束之前打开页面。后者只会在关闭时延迟,因此,因为他们将查看一个新页面,如果您不需要,延迟不是问题。注意:理论上,你也应该能够做
数据延迟=“{show:0,hide:500}”
,但我无法让它工作


第二种解决方法快速而简单,不必要的延迟应该不会太大,但要注意,在某些情况下(更快/更慢的机器、diff browser,谁知道呢?)总是有机会间歇性地遇到计时问题。所以它可能会在CI或其他方面失败。延迟越大,出现问题的可能性就越小(例如,我尝试了50次,但实际上对我来说根本不起作用),但是你需要处理一个很大的延迟。

你能创建一个小提琴吗?你能告诉我你在找什么吗。。。这是我创作的小提琴,上面的小提琴显示了我的意思。它不总是起作用:你能做一把小提琴吗?你能告诉我你在找什么吗。。。这是我创作的小提琴,上面的小提琴显示了我的意思。这并不总是奏效:我希望我能投两次票。我可以通过执行:
data delay='{“show”:0,“hide”:250}'
使该属性正常工作,但我使用的是Bootstrap v3.3.7,所以这可能只是他们在此期间修复的东西。无论如何,谢谢你。我希望我能投两次票。我可以通过执行:
data delay='{“show”:0,“hide”:250}'
使该属性正常工作,但我使用的是Bootstrap v3.3.7,所以这可能只是他们在此期间修复的东西。无论如何,谢谢你。