2017-07-17 121 views
0

我有一个Bootstrap 3弹出窗口,用于显示在表格单元格中单击图标的时间。表格行在页面加载时动态插入。我的jQuery使用Ajax调用来获取popover的内容。当显示弹出窗口时,其标题由其内容为空。设置Bootstrap弹出窗口的数据内容不起作用

下面是相关的HTML:

<td>1-Year Individual <a tabindex="0" class="history-info" data-trigger="focus" data-memberid="123" data-toggle="popover" data-placement="left" data-title="Membership history for Fred Smith" data-html="true" data-content=""><span class="glyphicon glyphicon-info-sign" style="color:grey;"></span></a></td> 

正如你所看到的,数据内容属性设置为空。

这是我的javascript。

$("#member-table .history-info").on("show.bs.popover", function() { 
var memberid=$(this).data("memberid"); 
$.ajax({ 
    url: "memberships-GetHistoryInfo.php", 
    type: "GET", 
    data: {MemberID: memberid}, 
    datatype: "html", 
    async: false, 
    success: function (data) { 
     $(this).data("content",data); 
    } 
}); 

})

我已经与$(本)。数据( “内容”,数据)后的警报权核实;在数据内容被设置为期望值的情况下,除了标题之外没有任何内容显示在弹出窗口中。

选择器中的成员表是标题以外的表中的标识。

回答

0

jquery.data() API为元素设置数据,但被jQuery提取并位于DOM上方的图层中。我会考虑添加属性与$(this).attr('data-content', data);

+0

感谢您的建议,但不幸的是,它没有区别。 – Pete

+0

啊,我继续用bootstrap文档查看popovers,用jQuery在我的浏览器控制台中抓取了元素,并用'attr()'改变了'data-content'属性,点击按钮,内容变成了什么我已经设置它 - 也许你必须在show.bs.popover'之前设置内容?从http://getbootstrap.com/javascript/#popovers上的'.popover('show')'方法文档看起来,这就是它检查内容的一点。相反,在页面加载时,您是否可以通过ajax获取所有弹出窗口的数据,并在结果上循环并将数据属性添加到所有行中? – sauntimo

+0

我在找到的链接中找不到jQuery popover示例,也许我错过了它。我最初是在页面加载时为每个图标创建数据内容,但由于表中的行数和需要的数据库访问,性能并不理想。我希望通过仅在单击图标时动态创建数据内容来提高性能。 – Pete