【问题标题】:JQuery mobile -> .append() removes CSS?JQuery mobile -> .append() 删除 CSS?
【发布时间】:2023-04-01 03:49:01
【问题描述】:

将项目附加到我的列表时,jquery mobile 的完整样式消失了...不知道如何解决这个问题?

目前正在运行:当不附加列表项时,所有样式都可以。

<div class="ui-grid-a">
                <div class="ui-block-a" id="blockaid">
                    <ul id="leftnav" data-role="listview" data-theme="g" data-filter="true" >

                        <li><a href="index.html">
                                <img src="images/bb.jpg" />
                                <h3>Firstname Lastname</h3>
                                <p>123456789</p>
                            </a></li>
                    </ul>

                </div>

               <div class="ui-block-b">
                ...

但是如果我开始使用从其他地方读取数据,所有样式都消失了:

        $(document).ready(function() {

            $.ajax({
                url: 'test.xml', 
                dataType: "xml",
                success : parse,
                error : function (xhr, ajaxOptions, thrownError){  
                    alert(xhr.status);          
                    alert(thrownError);
                } 


            });

            function parse(document){
                $(document).find("Details").each(function(){


                    $("#leftnav").append(


                    '<li>' + '<a href="#">' + '<img src="images/album-xx.jpg" />' +
                        '<h3>' + $(this).find('Name').text() + '</h3>' +
                        '<p>' + $(this).find('Number').text() + '</p>' +
                        '</a>' + '</li>'
                );
                });
            }
        });

怎么了?

谢谢!

【问题讨论】:

  • 我不确定这是否是个问题,但我绝不会使用 document 作为 javascript 函数的传入参数名称。
  • “所有样式都消失了”到底是什么意思?整个页面的格式消失了吗?还是仅仅在新元素上?
  • 顺便说一句,您是否在“普通”浏览器中尝试过相同的操作?我的意思是 PC 上的 chrome、firefox 等,而不是移动设备。
  • @Michael,没有文档的函数怎么写?
  • 新元素的所有样式都消失了,它们是“未格式化的” // 是的,我尝试了不同的浏览器。

标签: jquery css xml append


【解决方案1】:

好吧,要在新元素上触发自动样式,使用 .trigger("create") 应该可以完成这项工作。

见:Is it possible to create element on the fly with jQuery Mobile?

http://jquerymobile.com/demos/1.0b2/#/demos/1.0b2/docs/pages/page-scripting.html

编辑:$('#leftnav').listview('refresh') 是您寻找而不是创造的东西。

见:http://api.jquerymobile.com/listview/#method-refresh

【讨论】:

  • create 函数上是否还有 Links/Docs/Help-Files,我不明白这一点,resfresh 似乎很清楚...谢谢!
  • 不,创建功能仅在我阅读的内容中记录在这里。 create 函数的重点是初始化一个全新的原始标记(例如,如果您在代码执行期间创建一个新的列表视图,那么您将调用 create 来格式化它)。
  • 如果我能明白这一点,我会接受......我认为如何构造函数对我来说是一个普遍的问题......
  • 我没有收到您的最后一条评论(“如何构造函数”是什么意思?)。
  • 目前我正在像这样构建 append(): $("#leftnav").append('
  • ' + '
    ' + ... 等等...但是我认为这是错误的,我不知道如何正确构建它(正确的意思是:没有明确定义 ui-btn-icon 等。)
猜你喜欢
相关资源
最近更新 更多
热门标签