0

我正在尝试通过 ajax 将项目动态添加到 jquery mobile 中的列表视图中。

当我返回数据并附加生成的 html 时,新项目不会继承 listview 样式属性,任何帮助将不胜感激。

$(function() {
    $('.load_more').live("click",function() {
        var a_id = $(this).attr("id");
        var b_id = $(this).attr("data");
    if(a_id!='end'){
        $.ajax({
            type: "POST",
            url: "data.php",
            data: "aid="+ a_id+"&bid="+b_id,
    beforeSend:  function() {
        $('a.load_more').html('<img src="loading.gif" />');

},
    success: function(html){
        $("#more").remove();
        $("ul#updates").append(html);
        $('ul#updates').listview('refresh');
        }
    });
}
        return false;
    });
});
4

2 回答 2

0

我在进行 AJAX 调用时遇到了类似的问题,并且对 listview() 或 trigger() 函数没有运气。当内容不是动态时,这些对我有用,就像 Derek 的回复中的 jsfiddle 一样。我发现的是,如果您使用的是 google ajax API(http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js - 或 1.7.1 或某些变体) 然后 listview() 函数在样式方面停止工作。当将此脚本添加到具有静态内容的 jsfiddle 时,新项目不会继承样式。如果您的页面在没有此脚本的情况下也可以工作,则将其删除将是一个临时修复。

于 2013-07-30T19:11:54.330 回答
0

jQuery Mobile 不会自动增强动态内容。您必须触发create事件以强制 jQM 初始化新内容:

$(html).trigger('create');

对于列表视图,refresh添加新项目时应该足够了。请参阅此示例http://jsfiddle.net/qrYF7/

http://jquerymobile.com/demos/1.1.1/docs/pages/page-scripting.html

类似的问题:

强制 jQuery Mobile 重新评估动态插入内容的样式/主题

jQuery Mobile 在动态添加内容后不应用样式

于 2012-08-12T20:16:30.057 回答