Jquery 滚动后引导弹出窗口不工作

Jquery 滚动后引导弹出窗口不工作,jquery,twitter-bootstrap,listview,yii2,scroll-paging,Jquery,Twitter Bootstrap,Listview,Yii2,Scroll Paging,我在bootstrap popover行中显示内容,在我滚动到第二页或第三页bootstrap popover不工作后 <?php echo ListView::widget([ 'dataProvider' => $dataProvider, 'itemOptions' => ['style'=>'float:left;','class' => 'item'],

我在bootstrap popover行中显示内容,在我滚动到第二页或第三页bootstrap popover不工作后

<?php echo ListView::widget([
                     'dataProvider' => $dataProvider,
                     'itemOptions' => ['style'=>'float:left;','class' => 'item'],
                     'itemView' => '_item',
                     'pager' => [
                        'class' => \kop\y2sp\ScrollPager::className(),
                        'triggerOffset' => 100,
                        'noneLeftText' => 'You reached the end',                        
                        'noneLeftTemplate' => '<div class="ias-noneleft" style="text-align: center;clear:both;">{text}</div>',
                     ],
                     'summary' =>false,
                ]); ?>


<a  data-toggle="popover" data-placement='right' 
                          data-content='<div>Welcome to the yii2 scroll pager</div>' 
                          class="rec_popover"
                          href="<?=Url::toRoute(['list/view','rid' => $list['id']]);?>" data-lightbox-group="3D">
                          <img src="images/list-1.png"  border="0" style="width:190px;height:107px;" />
</a>

我不知道您使用的扩展名(ScrollPager),但我确定问题出在哪里。交易如下:

问题 我认为ScrollPager通过XHR(AJAX)加载数据。这意味着在收到新记录后,它们会附加到当前HTML代码中。默认情况下,popover会附加到具有属性
data toggle=“popover”
的所有元素。这发生在初始加载页面之后

因为新记录是在稍后的时间点加载的,所以popover处理程序不会附加到它们

解决方案 您需要手动附加popover处理程序。这可以通过几种不同的方式完成:

  • 捕获扩展的javascript事件(如果有)
  • 或者在请求完成时捕获全局ajax事件
后者具有独立于扩展工作的优点

JS代码 每当AJAX调用返回并将popover重新附加到所有相关目标时,就会执行以下js代码。这将永远解决你的问题

$(document).ajaxComplete(function() {
    //selector to fetch all popover-targets
    var popoverTargets = $('[data-toggle="popover"]');
    //iterate over them
    popoverTargets.each(function (i, el) {
        //remove popover if already attached
        $(this).popover('destroy');
        //re-attach popover
        $(this).popover();
    });
});
请注意,这使用了popover默认设置。如果您想自定义它,只需为
popover()
-调用提供一个对象作为参数


希望有帮助

嘿@sasi!我的回答解决了你的问题还是你需要更多的信息?