javascript – jquery移动触发’创建’除了第一次没有工作

我正在使用jQuery Mobile创建一个站点,在索引页面中我放置了一个搜索表单.我为ajax帖子挂了提交事件.当ajax成功获得资源时

(html,< ul> …< / ul>),放置在目标容器中,然后触发create事件以增强视图.这在第一次工作正常.当我点击返回索引页面并再次搜索时,我得到了一个没有增强的原始列表视图,谁能告诉我为什么? ps:我尝试了很多方法,但问题越来越多,官方文件太差了.

$(document).bind('pageinit',function(){
        $("#search").submit(function(){
            var searchdata = $("#search").serialize();

            $.ajax({
                'type':"POST",
                'url':"/server/jnulib.php?action=search",
                'data':searchdata,
                'success':function(data){
                    $("#searchresultfield > ul").remove();
                    $("#searchresultfield").html(data).find('ul').trigger('create');

                    try{
                        $("#searchresultfield > ul").listview('refresh');
                    }catch(e){

                    }

                    $.mobile.changePage("#searchresult");
                       //$("div[data-role='header'] > a").
                }
            });

            return false;
        });
    });

编辑:测试网址:http://ijnu.sinaapp.com
另一个问题:第二个ajax请求失败,浏览器直接导航到ajax目标.

最佳答案 您可以尝试更改:

$("#searchresultfield").html(data).find('ul').trigger('create');

至:

$("#searchresultfield").html(data).find('ul').listview().listview('refresh');

每当您追加或删除需要刷新的元素时,如果删除整个列表,则需要重新初始化它.

如果它不可见,我也遇到了listview(‘refresh’)渲染不正确的问题.

$(document).on('pageshow','div',function(event, ui){
 if($("#searchresultfield > ul").is(":visible")) $("#searchresultfield > ul").listview('refresh');
});
点赞