麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

jQuery教程 $()包裝函數來實現數組元素分頁效果

2019-11-20 22:25:07
字體:
來源:轉載
供稿:網友

最近一周在做中文站搜索禮品widget的需求,這個需求中有一個分頁的功能;具體demo可以參見下圖:

/

對應的js應用文件是同一個,頁面中后面的offer數據已經埋好了,只是啟用了css display:none樣式把后面的offer元素隱藏了。現在要求對已存在的頁面元素實現上下分頁效果,也就是頁面元素總集可以通過$(.class)獲得,然后來實現分頁功能。

按照傳統的一般做法,用jQuery可寫成如下:

復制代碼 代碼如下:

var total=$(.class).length; //取得需要分頁的元素的總個數
var radio=3;//根據寬窄屏獲得每頁顯示offer條數:
var pageSize=parseInt(total/radio); //獲得總頁數;
if(total % radio !=0){
   pageSize+=1; 
}
var currentPage=1;  //當前頁為第一頁
//向前翻頁的代碼:
$(.leftArrow,parentElem).bind('click',function(e){
var index=currentPage-1;
   if(currentPage==1){
     return;
   }else{
      $(.class).css('display','none');
      var elemIndex=index*radio; //數組中起始要顯示的元素的指針
       $(.class).eq(elemIndex).css('display','');
        $(.class).eq(elemIndex+1).css('display','');
        $(.class).eq(elemIndex+2).css('display','');
        //上面三句代碼可用next()重寫成  
        //$(.class).eq(elemIndex).css('display','')
        //  .next().css('display','')
        //  .next()..css('display','');    
    currentPage=index;
   }
})
//向后翻頁的代碼:
$(.rightArrow,parentElem).bind('click',function(e){
var index=currentPage+1;
   if(currentPage==pageSize){
     return;
   }else{
      $(.class).css('display','none');
      var elemIndex=index*radio; //數組中起始要顯示的元素的指針     
        $(.class).eq(elemIndex).css('display','');
        $(.class).eq(elemIndex+1).css('display','');
        $(.class).eq(elemIndex+2).css('display','');
       //上面三句代碼可用next()重寫成  
        //$(.class).eq(elemIndex).css('display','')
        //  .next().css('display','')
        //  .next()..css('display',''); 
    currentPage=index;
   }
})

大家發現沒有,在向后翻頁的代碼中,無論最后一頁只有1條offer,2條offer,還是全部3條offer,我都用同樣的代碼,不做任何判斷

復制代碼 代碼如下:

$(.class).eq(elemIndex).css('display',");
$(.class).eq(elemIndex+1).css('display',");
$(.class).eq(elemIndex+2).css('display',");

這3條語句連續調用。

也就是說,elemIndex有可能越界,即elemIndex>$(.class).length,即使在這樣的情況下,$(.class).eq(elemIndex+1).css('display',")照樣沒有問題,瀏覽器不會報錯,js照常執行,最終結果照樣能完美展示。這要感謝jQuery的包裝函數產生的juery對象,如果elemIndex>=$(.class).length,$(.class).eq(elemIndex+1)返回的是一個空jquery元素對象,雖然它沒有對應到DOM中的元素,但它還是一個jQuery對象,因此調用.css()方法不會出錯,雖然頁面沒有任何變化效果;

通過這個例子,就能夠理解為什么jQuey對不匹配的元素仍然返回jQuery Object,而不是null,這種思想對數組分頁操作來說,提供了極大的便利性,因為避免了數組索引越界引起程序錯誤,導致js中斷執行的情況,簡化了分頁代碼中大量的數組索引越界判斷。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人在线视频 | 国产瑟瑟视频 | 91成人午夜性a一级毛片 | 成年人视频在线免费观看 | 欧美日韩亚洲另类 | 欧美无极品 | 有色视频在线观看 | 中文字幕在线观看视频一区 | 99日韩精品视频 | 九九热九九爱 | 日本在线视频免费 | 91精品国产综合久久久动漫日韩 | 午夜视频在线免费观看 | 免费观看的毛片手机视频 | 国产精品久久久久久久久久10秀 | 久久久国产精品电影 | 国产精品亚洲三区 | 精国品产一区二区三区有限公司 | 九九热精品免费视频 | 久久国产精品久久久久久电车 | 精品一区二区免费视频视频 | 精品国产91久久久 | 在线成人免费观看视频 | 精品一区二区电影 | 黄色视频a级毛片 | 免费毛片随便看 | 国产免费高清 | 久久久久av69精品 | 欧美成年人视频在线观看 | 毛片免费在线观看 | 大学生一级毛片在线视频 | www.理论片| 国产一区网址 | 免费视频99 | 欧美毛片 | 色视频欧美| 韩国草草影院 | 一本色道久久综合狠狠躁篇适合什么人看 | 久久影院免费观看 | 99视频在线观看视频 | 欧美激情猛片xxxⅹ大3 |