技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 前端开发 > html/html5 > 正文

jquery mobile 手指触摸屏幕向上滑动,然后ajax加载数据(怎么做呢?)

来源: 技术CTO 阅读:

思路:手指触摸屏幕向上滑动,然后判断是否到到达了页面底部。如果到达了页面底部,然后就用ajax 请求下一页的数据

参考这个吧
事件	描述
hashchange 启用 bookmarkable #hash 历史记录。
navigate 针对 hashchange 和 popstate 的 wrapper 事件。
orientationchange 当用户垂直或水平旋转其移动设备时触发。
pagebeforechange 在页面变化周期内触发两次:任意页面加载或过渡之前触发一次,接下来在页面成功完成加载后,但是在浏览器历史记录被导航进程修改之前触发。
pagebeforecreate 当页面即将被初始化,但是在增强开始之前触发。
pagebeforehide 在过渡动画开始前,在“来源”页面上触发。
pagebeforeload 在作出任何加载请求之前触发。
pagebeforeshow 在过渡动画开始前,在“到达”页面上触发。
pagechange 在 changePage() 请求已完成将页面载入 DOM 并且所有页面过渡动画已完成后触发。
pagechangefailed 当 changePage() 请求对页面的加载失败时触发。
pagecreate 当页面已创建,但是增强完成之前触发。
pagehide 在过渡动画完成后,在“来源”页面触发。
pageinit 当页面已经初始化并且完成增强时触发。
pageload 在页面成功加载并插入 DOM 后触发。
pageloadfailed 如果页面加载请求失败,则触发。
pageremove 在窗口视图从 DOM 中移除外部页面之前触发。
pageshow 在过渡动画完成后,在“到达”页面触发。
scrollstart 当用户开始滚动页面时触发。
scrollstop 当用户停止滚动页面时触发。
swipe 当用户在元素上水平滑动时触发。
swipeleft 当用户从左划过元素超过 30px 时触发。
swiperight 当用户从右划过元素超过 30px 时触发。
tap 当用户敲击某元素时触发。
taphold 当元素敲击某元素并保持一秒时触发。
throttledresize 启用 bookmarkable #hash 历史记录
updatelayout 由动态显示/隐藏内容的 jQuery Mobile 组件触发。
vclick 虚拟化的 click 事件处理器
vmousecancel 虚拟化的 mousecancel 事件处理器
vmousedown 虚拟化的 mousedown 事件处理器
vmousemove 虚拟化的 mousemove 事件处理器
vmouseout 虚拟化的 mouseout 事件处理器
vmouseover 虚拟化的 mouseover 事件处理器
vmouseup 虚拟化的 mouseup 事件处理器
楼主,我也遇到你的问题了,你解决了吗?
$(document).on("pageshow","#mypage",function(){ 
        ///滑动到底部事件
 $(document).unbind("scroll");
  $(document).bind("scroll", function(event){
            //if( $(document).scrollTop() >= $(document).height()-$(window).height() -50 ){
    if( $(document).scrollTop() >= $(document).height()-$(window).height() ){
  //do your work
                       GetAjaxData();
     }
 });
});
$(document).on("pagehide","#mypage",function(){ 
 $(document).unbind("scroll");
});
function GetAjaxData(){
       /////Params.....
       $.ajax({
   timeout: settimeout,//请求超时时间(毫秒)
   async: true,//异步
   dataType: "json",//返回json格式的数据
   beforeSend: function () {
     showLoader();
    },
    complete: function () {
   hideLoader();
   },
   url: "接口地址?param1=p1&param2=p2",
   success: function (data) {
                       alert("返回数据:"+data);
                },
  error: function(XMLHttpRequest, textStatus, errorThrown){
  alert("异常信息:"+textStatus);
                    this;   //调用本次ajax请求时传递的options参数
  }
        });
}
function showLoader() {  
    //显示加载器.for jQuery Mobile 1.2.0  以上
    $.mobile.loading('show', {  
        text: '数据加载中,请稍候', //加载器中显示的文字  
        textVisible: true, //是否显示文字  
        theme: 'a',        //加载器主题样式a-e  
        textonly: false,   //是否只显示文字  
        html: ""           //要显示的html内容,如图片等,默认使用Theme里的ajaxLoad图片  
    });  
}  
function hideLoader()  
{  
    //隐藏加载器  
    $.mobile.loading('hide');  
大神回答的这么好,居然不结贴,没素质!谢谢大神,我正好需要这个答案!

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^