当前位置: 首页 > 面试题库 >

带有AJAX内容listview('refresh')的JQM(jQueryMobile)问题不起作用

段干华皓
2023-03-14
问题内容

这是我在做什么的模拟:

function loadPage(pn) {
    $('#'+pn).live('pagecreate',function(event, ui){
        $('#'+pn+'-submit').click( function() {
            $.mobile.changePage({
                    url: 'page.php?parm=value', 
                    type: 'post', 
                    data: $('form#'+pn+'_form')
                },'slide',false,false);

            loadAjaxPages(pn);
        });
});

function loadAjaxPages(page) {
    // this returns the page I want, all is working
    $.ajax({
        url: 'page.php?parm=value',
        type: 'POST',
        error : function (){ document.title="error"; }, 
        success: function (data) {                  
            $('#display_'+page+'_page').html(data); // removed .page(), causing page to transition, but if I use .page() I can see the desired listview
        }
    });
}

在ajax调用返回中,如果我添加了.page()(过去曾用过,但我将其放在页面函数的外面,更改了如何加载页面的逻辑以节省加载时间),则将页面转换为下一页,但我可以看到listview的样式符合我想要的方式:

$('#display_'+page+'_page').html(data).page();

删除.page()可以解决过渡错误,但是现在页面无法设置样式。我尝试过listview('refresh'),甚至listview('refresh',true)没有运气。

关于如何使列表视图刷新的任何想法?

解:

$.ajax({
    url: 'page.php?parm=value',
    type: 'POST',
    error : function (){ document.title="error"; }, 
    success: function (data) {                  
        $('#display_'+page+'_page').html(data);
        $("div#name ul").listview(); // add div wrapper w/ name attr to use the refresh
    }
});

问题答案:
  1. 确保调用.listviewul元素
  2. 如果以前没有设置样式,则只需调用.listview()bot刷新功能即可。如果您的Firebug设置正确,则应该已经看到一条错误消息告诉您。

在发布您的修复程序之前,我没有时间去编写一些代码,但这是我的一些建议:

if(data !== null){ $('#display_'+page+'_page').html(data).find("ul").listview() }

这比新的全局选择器更好。另外-如果您有多个UL,则不需要div,并且可以提供详细的选择器。

注意: 以上代码要求data !== null。如果为空-将引发错误。



 类似资料:
  • 问题内容: 我正在使用jQuery Mobile构建移动Web应用程序,但是我遇到了问题。我正在使用jQuery解析XML文件并创建列表项。它会构建列表,然后将该的列表附加到页面上的。我读到,为了使列表具有正确的样式,必须在添加数据以刷新列表后调用,以便jQuery Mobile可以为列表设置正确的样式。 我的问题是列表永远不会刷新。它一直在样式不正确。难道我做错了什么?我的代码正确吗?仅供参考,

  • 问题内容: 在此页面上,我有一个jQuery弹出窗口和可调整大小的缩略图。如果我将鼠标悬停在缩略图上,则图像的大小将完美调整。另外,当我单击页脚中的黄色大电视按钮“ QuickBook TV”时,弹出窗口会按照我的意愿完美显示。 但是,当我单击“下一步”或“上一步”按钮时,将使用AJAX加载新内容,而jQuery不再对弹出窗口或缩略图起作用。我搜索了许多论坛来寻找有关此问题的信息,但是由于对jQu

  • 问题内容: 这对于加载页面加载的内容效果很好,但是相同的功能不适用于使用ajax加载的内容,只是不会拦截点击。 我该怎么办? 在另一种情况下,我遇到了相同的问题(不是用于切换,用于单击),并且以这种方式进行了排序。我不知道该如何处理切换? 问题答案: 标志方法: 数据方法

  • 问题内容: 我在使用以下代码时遇到了麻烦: 调用Offer.query({},function(){}); 在我的控制器中工作没有任何问题。但是这部分不起作用: 这总是返回400错误: “NetworkError:400错误的请求- https://api.trustyou.com/hotels/d8421e79-99f0-41b2-8d6e-9cfd62a9776b/seal.json?call

  • 这是一款基于 react-native,使用纯 js 编写,同时支持 android 和 ios 的下拉刷新和上拉加载更多控件 详细用法,请查看 https://github.com/remobile/react-native-refresh-infinite-listview

  • 我有一个使用Thymeleaf的Spring启动应用程序。我正在使用字符串值设置一个模型变量,并希望在javascript中将其用作变量值。 在Java中,我执行以下操作: 我的HTML代码如下所示: JavaScript中的结果应该是: 但是我得到的是超文本标记语言: 我在超文本标记语言/JavaScript中尝试了不同的东西: 仅使用一个括号- JavaScript中没有正确的字符串。我怎样才