0

我有一个大的分页表。每行显示一个客户及其信息。我使用 AJAX 调用来检查是否有客户注释。

如果有客户注释,则会添加一个图标。它被添加为 a 的内部 html,它只是此通知图标的占位符。当悬停图标时,它会在 twitter 引导弹出窗口中显示可用的注释。

它工作正常,除了换行符<br><br />实际上不换行但在弹出窗口中显示为常规文本。这可能是因为它们是在页面加载后添加的,因为它一直适用于我的静态弹出窗口。

通过搜索我发现html : true必须通过但它没有帮助。如何获取 html 换行符以在动态添加弹出框的弹出框中呈现?

注释的占位符具有以下标记:

<span class="notitieIndicatie" id="519de1b978b55"></span>

带有ajax加载的javascript看起来如下:

<script type="text/javascript" language="JavaScript">        
$(document).ready(function()
{        
    function getMessageAjax(uniqid)
    {
        var notes = "";
        $.ajax({
            type: "POST",
            url: "ajax.php",
            data:
            {
                action: 'getNotes',
                uniqid: uniqid,
                cache: false
            },
            success: function(data)
            {
                if (data != 'NULL')
                {
                    var theValues = $.parseJSON(data);                        
                    $.each(theValues, function(key, value)
                    {
                        notes += '&bull;'+value['n_kort']+'<br>';
                    });                        
                    var popover = '<img src="images/icons/icon-info.gif" class="notepopover" data-content="'+notes+'" data-placement="bottom" data-original-title="" />';
                    $('#'+uniqid).html(popover);                        
                    $('body').popover({
                        selector: '.notepopover',
                        trigger: "hover",
                        html : true
                    });
                }
            }
        });
    }

    $('.notitieIndicatie').each(function(i, obj) {        
        getMessageAjax(this.id);
    });

});

4

1 回答 1

0

解决方案是避免使用data-content,而是将 html 字符串作为值传递给 popover 调用content

<script type="text/javascript" language="JavaScript">
$(document).ready(function()
{
    function getMessageAjax(uniqid)
    {
        var notes = "";
        $.ajax({
            type: "POST",
            url: "ajax.php",
            data:
            {
                action: 'getNotes',
                uniqid: uniqid,
                cache: false
            },
            success: function(data)
            {
                if (data != 'NULL')
                {
                    var theValues = $.parseJSON(data);

                    var notesHTML = '<ul>';
                    $.each(theValues, function(key, value)
                    {
                        notesHTML += '<li>'+value['n_kort']+'</li>';
                    });
                    notesHTML += '</ul>';

                    var html = $('<img src="images/icons/icon-info.gif" class="notepopover" />');
                    $('#'+uniqid).append(html);

                    html.popover({
                        placement: "bottom",
                        trigger: "hover",
                        content: notesHTML,
                        html : true
                    });


                }
            }
        });
    }

    $('.notitieIndicatie').each(function(i, obj) {
        getMessageAjax(this.id);
    });

});

于 2013-05-24T09:10:53.293 回答