Javascript 在ajax加载元素后初始化引导popover

Javascript 在ajax加载元素后初始化引导popover,javascript,jquery,ajax,twitter-bootstrap,Javascript,Jquery,Ajax,Twitter Bootstrap,使用引导式弹出框时,必须在javascript代码中对其进行初始化,如下面的$('#element').popover()。通常您会使用$(document).ready()功能。但是,如果popover绑定到的元素是由ajax本身加载的呢 由于对javascript没有充分的信心,我目前面临的问题是页面通过多个ajax调用加载了大部分内容。这些要素之一是: <span class="infolink" style="vertical-align:bottom;" data-title=

使用引导式弹出框时,必须在javascript代码中对其进行初始化,如下面的
$('#element').popover()。通常您会使用
$(document).ready()功能。但是,如果popover绑定到的元素是由ajax本身加载的呢

由于对javascript没有充分的信心,我目前面临的问题是页面通过多个ajax调用加载了大部分内容。这些要素之一是:

<span class="infolink" style="vertical-align:bottom;"  data-title="some title" data-placement="bottom" data-delay="500" data-content="some content"> 
Trigger Popover 
</span>

触发爆米花
我想到的一个解决方案是,在每次ajax调用循环之后遍历所有元素并初始化popover(例如:
$('.infolink')。每个(函数(i,e){e.popover();});
)。我不想这样做,因为考虑到ajax调用的数量和页面的大小,这会影响性能。还有别的办法吗

另一个想法是拥有一个函数(例如,
function initializepover(element){…}
),并在加载元素后调用它。但这也不起作用


对于如何初始化将由ajax加载触发器元素本身的弹出窗口,是否有最佳实践

我认为最好的方法是在ajax调用完成后添加一个

$('.infolink').popover();

这不需要循环。

我认为最好的方法是在ajax调用完成后添加一个循环

$('.infolink').popover();
这不需要循环。

使用jQuery的机制捕获以异步方式加载的元素:

假设以下html是从AJAX调用加载的:

<span class="infolink" style="vertical-align:bottom;"  data-title="some title" data-placement="bottom" data-delay="500" data-content="some content"> 
Trigger Popover 
</span>
这基本上是以下逻辑的别名:

  • 单击
    文档
    元素时(基本上无处不在)
  • 检查单击是否从“.infolinks”冒泡
  • 如果有,则发送事件回调
  • 这样,即使元素稍后出现,您仍然可以将事件回调绑定到它。

    使用jQuery的机制捕获以异步方式加载的元素:

    假设以下html是从AJAX调用加载的:

    <span class="infolink" style="vertical-align:bottom;"  data-title="some title" data-placement="bottom" data-delay="500" data-content="some content"> 
    Trigger Popover 
    </span>
    
    这基本上是以下逻辑的别名:

  • 单击
    文档
    元素时(基本上无处不在)
  • 检查单击是否从“.infolinks”冒泡
  • 如果有,则发送事件回调

  • 这样,即使元素稍后出现,您仍然可以将事件回调绑定到它。

    中有两个解决方案:您可以选择适合您的解决方案。

    中有两个解决方案:您可以选择适合您的解决方案。

    我假设各种ajax调用将html添加到dom中。您可以尝试在添加的代码片段中进行选择,而不是在整个页面中进行选择。您可以尝试在添加的代码段中进行选择,而不是在整个页面中进行选择。