【问题标题】:appending html with jquery but don't get style用 jquery 附加 html 但没有样式
【发布时间】:2012-09-14 20:01:24
【问题描述】:

我正在向我的网页添加一些带有 js 的 li,对于这个 li,我使用了一些 jquery 移动样式表: 为了加载 js,我使用以下代码:

$(document).bind('pageshow', function () {
    LoadLaadPalen.init();
}

然后将使用此代码:

var myData = [
    {"Identifier":1,"Naam":"NOT Given","Adres":"Kopenhagen 9","Postcode":"0000LL","Plaats":"NOT Given","Longitude":"0.00000","Latitude":"0.00000"},
    {"Identifier":2,"Naam":"NOT Given","Adres":"NOT Given 1","Postcode":"0000LL","Plaats":"Rotterdam","Longitude":"0.00000","Latitude":"0.00000"},
    {"Identifier":3,"Naam":"NOT Given","Adres":"NOT Given 6","Postcode":"0000LL","Plaats":"Rotterdam","Longitude":"0.00000","Latitude":"0.00000"},
    {"Identifier":4,"Naam":"NOT Given","Adres":"NOT Given 1","Postcode":"0000LL","Plaats":"Den Haag","Longitude":"0.00000","Latitude":"0.00000"},
    {"Identifier":5,"Naam":"NOT Given","Adres":"NOT Given 218","Postcode":"0000LL","Plaats":"Zoetermeer","Longitude":"0.00000","Latitude":"0.00000"}
];

$('.result').append("moi");

var items = [];
$.each(myData, function(index, element) {
    $('.greenfluxlist').append('<a href="#" rel="external"><li id="' + element.Identifier + '"><h3>' + element.Naam + '</h3><p>' + element.Adres +  '</p></li></a>');
});

这必须附加到本节:

<div data-role="content" data-theme="a">
    <div id="laadpalen">
        <p><strong>Op deze locaties zijn laadpunten aanwezig:</strong></p>
        <div class="result">
            <ul class="greenfluxlist" data-role="listview" data-inset="true"></ul>
        </div>
    </div>
</div>

但不幸的是,我看不到任何风格。我只看到带有文本和蓝色标准链接的项目符号。而且如果我要检查源代码,没有任何 html li 代码,但在网页上我看到它们...

【问题讨论】:

  • 检查 DOM,而不是“源代码”。右键单击元素并选择“检查元素”(或类似的)。
  • 嗨!您提到的样式应该适用于哪些元素?
  • 请出示 CSS,其中可能有错误。

标签: javascript jquery jquery-mobile


【解决方案1】:

看看你的

  • 定义。它应该以
  • : 开头
    <li><a href="bmw.html">BMW</a></li>
    

    您的格式不正确:

    <a href="#" rel="external"><li id="' + element.Identifier + '"><h3>' + element.Naam + '</h3><p>' + element.Adres +  '</p></li></a>
    

    尝试按照我向你展示的那样去做:

    <li><a class=contact href="#" id="' + data.response[key].id + '" ><h1>' + data.response[key].label + '</h1><p>'+ data.response[key].customer + '</p></a></li>
    

  • 开头而不是 href :P 如果出现问题,请查看:jQuery docs。记得先触发再刷新列表:
    $('.greenfluxlist').trigger('create');
    $('.greenfluxlist').listview('refresh');
    
  • 【讨论】:

    • 我猜它必须与加载顺序有关
    • 你添加了 $('.greenfluxlist').trigger('create'); ?
    • 我添加了 $('.greenfluxlist').trigger('create');它奏效了,谢谢!你能简单解释一下触发器的作用吗??
    • 它使所有动作发生。它是某种“应用程序”,可以应用您的操作。我在翻译器中找到它:“haan van een vuurwapen”:D
    【解决方案2】:

    尝试添加如下内容:

    $('.greenfluxlist').listview('refresh');
    

    我可以给你举个例子。第一个附加函数:

    function success(data)
                {
                    var html ='';
                    $.each(data.response, function(key, value) {
                    html += '<li><a class=contact href="#" id="' + data.response[key].id + '" ><h1>' + data.response[key].label + '</h1><p>'+ data.response[key].customer + '</p></a></li>';
                    $('#contact_listview').append($(html));
                    html='';
                    });
                    $('#contact_listview').trigger('create');    
                    $('#contact_listview').listview('refresh');
                    $.hidePageLoadingMsg;
                }
    

    现在是 html 定义:

    <ul data-role="listview"  id="contact_listview" data-filter="true">
    
    </ul>
    

    【讨论】:

    • 它在我的文件中有效:P 您是否尝试过为您的目的编辑我的代码?
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2010-10-12
    相关资源
    最近更新 更多