亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery 翻頁組件yunm.pager.js實現div局部刷新的思路

2019-11-20 09:15:36
字體:
來源:轉載
供稿:網友

 前端的翻頁插件有很多,bootstrap的翻頁界面看起來就不錯,做起來也易于上手,但應用于項目中的翻頁實現還有有幾個難點,分別是:

如何封裝一個翻頁插件,如題中的yunm.pager.js。

涉及到的div局部刷新該如何做。

在沒給大家介紹正文之前,先給大家展示下效果圖,如果感覺還不錯,請繼續往下閱讀:

這里寫圖片描述

翻頁的總體流程涉及到的知識點很多,這篇文章我們也主要來關注以上兩點,其余的內容,請自悟。

一、如何定義局部刷新的div

翻頁時,我們一般只會刷新頁面中涉及到翻頁的父級div,那么該如何定義呢?

<form rel="support_deal_page" target="turnPageForm" action="${ctx}/initI" method="post"><input type="hidden" name="page" value="1" /><input type="hidden" name="rows" value="2" /></form><div id="support_deal_page" class="row"></div>

為div定義id,建議為當前頁面唯一,如果頁面有多個翻頁組件。

為div創建一個同級的form表單。

rel屬性指向div,表明該form表單屬于support_deal_page的div。

target屬性為turnPageForm,表明該form為翻頁組件的form。

action 參數自然不可或缺。

定義page 的input標簽,表明為第一頁。

定義rows的input標簽,表明每頁有顯示兩個。

div定義完后,頁面加載load的時候,我們就可以請求后臺(后臺怎么處理數據,這里就不羅嗦了),獲取第一頁的分頁數據。

// 根據form的target屬性,獲取需要分頁的div,發起ajax請求。$("form[target=turnPageForm]", $p).each(function() {var $this = $(this);YUNM.debug('form[target=turnPageForm]' + $this.selector);var rel = $this.attr("rel");var $box = $this.parent().find("#" + rel);if (rel) {$box.ajaxUrl({type : "POST",// 記錄div的idurl : $this.attr("action") + "?rel=" + rel,data : $this.serializeArray(),callback : function() {}});}});ajaxUrl : function(op) {var $this = $(this);$.ajax({type : op.type || 'GET',url : op.url,data : op.data,cache : false,success : function(response) {var json = YUNM.jsonEval(response);if (json[YUNM.keys.statusCode] == YUNM.statusCode.error) {if (json[YUNM.keys.message])$.showErr(json[YUNM.keys.message]);} else {// ajax請求獲取成功后,將局部刷新的內容放到div中$this.html(response).initUI();if ($.isFunction(op.callback))op.callback(response);}},error : YUNM.ajaxError,statusCode : {503 : function(xhr, ajaxOptions, thrownError) {$.showErr("服務器當前負載過大或者正在維護!" || thrownError);}}});},

頁面首次加載的時候,我們將第一頁的數據放到div中,這一步也很簡單。

二、封裝翻頁組件 yunm.pager.js

完成第一步后,如何將翻頁組件封裝,就成為接下來的關鍵步驟了。

(function($) {$.fn.extend({pager : function(opts) {// 可參照bootstrap的翻頁,為了獲得前一頁和后一頁的按鈕組件var setting = {prev$ : "li.previous",next$ : "li.next",};return this.each(function() {var $this = $(this);var pc = new Pager(opts);// 參照bootstrap翻頁$this.html('<ul class="pager">' + '<li class="previous"><a href="#">← 前一頁</a></li>' + '<li class="next"><a href="#">后一頁 →</a></li>'+ '</ul>');var $prev = $this.find(setting.prev$);var $next = $this.find(setting.next$);if (pc.hasPrev()) {// 如果有前一頁,綁定前一頁事件_bindEvent($prev, pc.getCurrentPage() - 1, pc.rel());} else {// 否則置灰$prev.addClass("disabled");}if (pc.hasNext()) {_bindEvent($next, pc.getCurrentPage() + 1, pc.rel());} else {$next.addClass("disabled");}});// 綁定點擊事件,主要傳遞第幾頁function _bindEvent($target, pageNum, rel) {$target.bind("click", {pageNum : pageNum}, function(event) {yunmPageBreak({rel : rel,data : {pageNum : event.data.pageNum}});event.preventDefault();});}},});// 翻頁的必要參數var Pager = function(opts) {this.opts = $.extend({rel : "", // 用于局部刷新div id號totalCount : 0,//總數numPerPage : 10,// 默認顯示10個currentPage : 1,// 當前頁callback : function() {return false;}}, opts);};$.extend(Pager.prototype, {rel : function() {return this.opts.rel;},// 每頁顯示多少個numPages : function() {return Math.ceil(this.opts.totalCount / this.opts.numPerPage);},// 當前頁getCurrentPage : function() {var currentPage = parseInt(this.opts.currentPage);if (isNaN(currentPage))return 1;return currentPage;},// 能否向前翻頁hasPrev : function() {return this.getCurrentPage() > 1;},// 向后翻頁hasNext : function() {return this.getCurrentPage() < this.numPages();}});})(jQuery);function yunmPageBreak(options) {var op = $.extend({rel : "",data : {pageNum : "",},callback : null}, options);if (op.rel) {var $box = $("#" + op.rel);// 獲得局部刷新的div后,就可以獲得同級的form表單var form = $("form[target=turnPageForm]", $box.parent()).get(0);if (form) {// 第幾頁if (op.data.pageNum)form[YUNM.pageInfo.pageNum].value = op.data.pageNum;$box.ajaxUrl({type : "POST",url : $(form).attr("action") + "?rel=" + op.rel,data : $(form).serializeArray(),callback : function() {}});}}}

三、翻頁應用

封裝了翻頁組件后,我們來看看怎么使用。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ include file="/components/common/taglib.jsp"%><c:forEach items="${deal_page}" var="deal">${deal.name}</c:forEach><div class="turnPagePager" rel="${param.rel}" totalCount="${vo.totalCount}" numPerPage="${vo.numPerPage}"currentPage="${vo.pageNum}">

指定div的class為turnPagePager,頁面load的時候我們將其轉換為pager組件。

將其關鍵屬性rel、totalCount、numPerPage、currentPage進行賦值。

頁面load的時候進行轉換:

$("div.turnPagePager", $p).each(function() {var $this = $(this);$this.pager({rel : $this.attr("rel"),totalCount : $this.attr("totalCount"),numPerPage : $this.attr("numPerPage"),currentPage : $this.attr("currentPage")});});

以上所述是小編給大家介紹的jQuery 翻頁組件yunm.pager.js實現div局部刷新的思路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
福利一区福利二区微拍刺激| 日韩欧美在线视频日韩欧美在线视频| 国产97在线观看| 91久久久久久久久久久| 97精品国产97久久久久久| 国产日韩专区在线| 成人激情电影一区二区| 国产91免费看片| 亚洲精品中文字幕有码专区| 国产日韩欧美夫妻视频在线观看| 欧洲亚洲女同hd| 最新中文字幕亚洲| 91chinesevideo永久地址| 久久国内精品一国内精品| 爱福利视频一区| 欧美日韩999| 欧美电影免费在线观看| 亚洲天堂av综合网| 亚洲免费福利视频| 欧美在线观看一区二区三区| 亚洲国产日韩欧美综合久久| 日韩精品免费观看| 欧美一级免费看| 久久久久久成人| 亚洲欧美国产va在线影院| 国产精品无码专区在线观看| 亚洲日韩欧美视频一区| 亚洲精品网址在线观看| 一本色道久久综合狠狠躁篇怎么玩| 国产成人精品视频在线| 疯狂做受xxxx高潮欧美日本| 欧美性色视频在线| 亚洲精品v天堂中文字幕| 日韩男女性生活视频| 欧美裸体男粗大视频在线观看| 亚洲高清久久网| 欧美多人爱爱视频网站| 91久久久久久久一区二区| 国产精品国语对白| 夜夜嗨av色综合久久久综合网| 欧美日韩激情视频8区| 国产精品国产三级国产aⅴ浪潮| 欧美理论电影在线播放| 欧美午夜性色大片在线观看| 成人福利网站在线观看11| 欧美午夜性色大片在线观看| 一区二区三区视频免费| 亚洲精品狠狠操| 色偷偷噜噜噜亚洲男人| 国产精品久久电影观看| 91老司机在线| 日韩av在线免播放器| 久久99国产综合精品女同| 欧美精品在线免费播放| 欧美精品在线极品| 成人久久久久爱| 欧美乱大交xxxxx另类电影| 91精品国产乱码久久久久久久久| 精品视频在线观看日韩| 久久精品国产精品| 欧美猛交免费看| 日韩美女av在线免费观看| 岛国av一区二区在线在线观看| 欧美成人精品不卡视频在线观看| 欧美日韩国产123| 亚洲美女av在线| 日韩中文字幕国产精品| 日韩不卡中文字幕| 91精品啪在线观看麻豆免费| 欧美一级视频免费在线观看| 日韩欧美中文字幕在线播放| 国产精品美女久久久免费| 中文字幕日韩精品在线观看| 国产成+人+综合+亚洲欧美丁香花| 久久在线免费视频| 欧美贵妇videos办公室| 久久99国产综合精品女同| 狠狠躁夜夜躁人人爽超碰91| 日韩免费在线观看视频| 久久久久久久网站| 欧美午夜片在线免费观看| 久久国产加勒比精品无码| 亚洲免费视频在线观看| 日本精品久久久久久久| 按摩亚洲人久久| 久久久久成人精品| 亚洲最大福利视频网| 日韩欧美亚洲成人| 久热精品视频在线观看一区| 欧美成人免费网| 日韩av最新在线| 一本色道久久88综合亚洲精品ⅰ| 欧美成人午夜激情在线| 亚洲国产成人爱av在线播放| 亚洲精品电影在线观看| 欧美成人免费网| 成人免费视频在线观看超级碰| 97精品国产97久久久久久免费| 亚洲欧美国产日韩天堂区| 97香蕉久久夜色精品国产| 久久天天躁狠狠躁夜夜av| 91国偷自产一区二区三区的观看方式| 日韩中文字幕免费视频| 国产三级精品网站| 亚洲视频综合网| 精品亚洲aⅴ在线观看| 欧美精品在线视频观看| 91tv亚洲精品香蕉国产一区7ujn| 成人免费大片黄在线播放| 欧美成人免费视频| 久久精品欧美视频| 欧美日韩国产黄| 国产aⅴ夜夜欢一区二区三区| 亚洲精品98久久久久久中文字幕| 中文字幕一区二区精品| x99av成人免费| 欧美精品制服第一页| 欧美超级免费视 在线| 国产91在线播放九色快色| 欧美日韩视频在线| 欧美日韩免费在线| 亚洲四色影视在线观看| 欧美日韩一区二区在线| 亚洲一区二区自拍| 成人a在线观看| 青青青国产精品一区二区| 92国产精品久久久久首页| 亚洲国产成人av在线| www.日韩不卡电影av| 亚洲激情中文字幕| 欧美日本高清视频| 国产精品毛片a∨一区二区三区|国| 久久精品久久久久久| 精品国产一区二区三区四区在线观看| 欧美日韩免费在线观看| 国产日韩欧美在线看| 一区二区三区亚洲| 国产精品都在这里| 亚洲免费av电影| 国产主播欧美精品| 国产亚洲精品成人av久久ww| 欧美成人中文字幕在线| 一区二区三区久久精品| 欧美极品在线播放| 日韩一区视频在线| 成人激情视频网| 亚洲国产精品资源| 日韩在线观看网站| 国产精品1234| 日韩av片永久免费网站| 欧美大片网站在线观看| 日韩精品视频在线| 精品国产鲁一鲁一区二区张丽| 国产精品中文字幕久久久| 欧美激情国产精品| 国产精品va在线播放我和闺蜜| 91在线网站视频| 国内精品久久久久久中文字幕| 尤物精品国产第一福利三区| 日韩在线视频播放| 国产精品天天狠天天看| 久久成人人人人精品欧| 欧美高清不卡在线| 亚洲欧美国产一区二区三区|