Javascript 在ajax加载元素后初始化引导popover
使用引导式弹出框时,必须在javascript代码中对其进行初始化,如下面的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=
$('#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中。您可以尝试在添加的代码片段中进行选择,而不是在整个页面中进行选择。您可以尝试在添加的代码段中进行选择,而不是在整个页面中进行选择。