一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

注冊

微信小程序音樂播放器,音樂播放器檢索頁制作(下)

2020-09-27
導讀:到目前為止,我們已經完成了檢索頁所有的布局和格式文件,也完成了所有的數據請求函數,現在我們需要將這些串聯起來,實現這三部分間的切換。...

  檢索頁 (下)

  

  到目前為止,我們已經完成了檢索頁所有的布局和格式文件,也完成了所有的數據請求函數,現在我們需要將這些串聯起來,實現這三部分間的切換。

  

微信小程序音樂播放器,音樂播放器檢索頁制作(下)

  總結一下我們需要完成的邏輯有:

  

  • 點擊熱門關鍵字,頁面內容變成搜索結果頁(需要請求網絡,用我們寫好的getSearchMusic方法),輸入框內顯示點擊的關鍵字,同時這個關鍵字加入歷史搜索結果。
  • 在頁面內容為熱門關鍵字的時候,點擊輸入框使其獲得焦點時,頁面內容變成歷史記錄。
  • 點擊歷史記錄文字,內容變成搜索結果(請求網絡),輸入框顯示這個記錄。
  • 點擊歷史記錄每條末尾的“X”,刪除這一條記錄,當所有記錄全部刪除或點擊了“清除歷史記錄”選項,內容變為熱門關鍵字。
  • 輸入框內的內容被全部刪除后,也返回熱門關鍵字。
  • 點擊確認按鈕,內容變為搜索結果頁,同時加入歷史記錄。
  • 點擊搜索結果的item,頁面轉到專輯頁或音樂播放頁。

     

      


 

  實現這些邏輯的相關事件我們已經在頁面里注冊好了,在具體實現這些事件之前,我們先寫一個函數——將字符串加入到歷史記錄。

  

  這個函數很簡單,我們在寫歷史記錄頁面時,已經用到了historySearchs這個數組,所以添加時我們只有獲取這個數組,然后將要添加的詞push到數組里,然后用setData更新頁面就可以了。

  1. addHistorySearchs: function (key) {
  2.         var historySearchs = this.data.historySearchs;
  3.             historySearchs.push(key);
  4.             this.setData({
  5.                 historySearchs: historySearchs
  6.             })
  7.     },
復制代碼

 

  但是這樣做的問題是當用戶多次搜索相同內容時,數組內就會多次加入同樣的詞,導致我們的歷史記錄列表里出現重復內容,這顯然是不合理的,所以我們在每次push前,需要判斷數組內是否已經含有這個詞。

  1. findHistorySearchs: function (key) {
  2.         var historySearchs = this.data.historySearchs;
  3.         for (var i = 0; i < historySearchs.length; i++) {
  4.             if (historySearchs[i] == key) { return false; }
  5.         }
  6.         return true;
  7.     },
復制代碼

 

  創建新的函數,這個函數會遍歷historySearchs數組,如果存在相同項則返回false,沒有相同的返回true。

  然后我們更改我們的addHistorySearchs方法:

  1. addHistorySearchs: function (key) {
  2.         var historySearchs = this.data.historySearchs;
  3.         if (this.findHistorySearchs(key)) {
  4.             historySearchs.push(key);
  5.             this.setData({
  6.                 historySearchs: historySearchs
  7.             })
  8.         }
  9.     },
復制代碼

 

  有個這個方法后,我們開始逐條完成我們的事件代碼。

  

  將所有更新頁面有關變量添加到data里:

  1. data: {
  2.         slider: [],
  3.         indicatorDots: true,
  4.         autoplay: true,
  5.         interval: 5000,
  6.         duration: 1000,
  7.         radioList: [],
  8.         currentView: 1,
  9.         topList: [],
  10.         hotkeys: [],
  11.         showSpecial: false,
  12.         special: { key: '', url: '' },
  13.         searchKey: '',
  14.         searchSongs: [],
  15.         zhida: {},
  16.         showSearchPanel: 1,
  17.         historySearchs: [],
  18.     },
復制代碼

 

  熱門關鍵詞的點擊事件:

  1. hotKeysTap: function (e) {
  2.         var dataSet = e.currentTarget.dataset;
  3.         var key = dataSet.key;                           //獲取點擊的關鍵詞
  4.         var self = this;              
  5.         if (key != '') {                                 //判斷是否為空
  6.             self.addHistorySearchs(key);                 //調用我們寫好的方法,加入歷史記錄
  7.             self.setData({
  8.                 searchKey: key,                          //為輸入框內添加文字
  9.                 showSearchPanel: 3,                       //顯示內容切換為搜索結果
  10.             });
  11.             MusicService.getSearchMusic(key, function (data) {         //請求網絡數據
  12.                 if (data.code == 0) {
  13.                     var songData = data.data;
  14.                     self.setData({                                //將獲得的數據添加到相應數組里
  15.                         searchSongs: songData.song.list,               
  16.                         zhida: songData.zhida
  17.                     });
  18.                 }
  19.             });
  20.         }
  21.     },
復制代碼

 

  輸入框獲取焦點事件:

  1. bindFocus: function (e) {
  2.         var self = this;
  3.         if (this.data.showSearchPanel == 1) {      //判斷內容是否為熱門關鍵詞
  4.             self.setData({
  5.                 showSearchPanel: 2                  //切換到歷史記錄
  6.             })
  7.         }
  8.     },
復制代碼

 

  歷史記錄文字的點擊事件:

  1. historysearchTap: function (e) {
  2.         var dataSet = e.currentTarget.dataset;
  3.         var key = dataSet.key;                        //獲取點擊的歷史記錄文字
  4.         var self = this;
  5.         self.setData({                                   
  6.             searchKey: key,                          //輸入框添加文字
  7.             showSearchPanel: 3                        //顯示搜索結果
  8.         });
  9.         MusicService.getSearchMusic(key, function (data) {     //請求網絡,獲取搜索結果
  10.             if (data.code == 0) {
  11.                 var songData = data.data;
  12.                 self.setData({
  13.                     searchSongs: songData.song.list,
  14.                     zhida: songData.zhida
  15.                 });
  16.             }
  17.         });
  18.     },
復制代碼

 

  歷史記錄結尾的“X”與“清除歷史記錄”的點擊事件:

  1.     delHistoryItem: function (e) {
  2.         var historySearchs = this.data.historySearchs;
  3.         var dataSet = e.currentTarget.dataset;                 //獲取點擊的條目
  4.         if (dataSet.index != 'undefined') {                    
  5.             var _index = parseInt(dataSet.index);              //獲取點擊條目為數組的第幾項
  6.             historySearchs.splice(_index, 1);                  //從數組里刪除對應的條目
  7.             this.setData({                                    //更新頁面
  8.                 historySearchs: historySearchs
  9.             });
  10.             if(historySearchs.length==0){                     //如果歷史記錄里沒有數據了
  11.                 this.setData({
  12.                     showSearchPanel: 1                        //切換到熱門關鍵字
  13.                 })
  14.             }
  15.         }
  16.     },
  17.     clearHistorySearchs: function () {               
  18.         this.setData({
  19.             historySearchs: [],                               //清空歷史記錄數組
  20.             showSearchPanel: 1                                //切換到熱門關鍵字
  21.         })
  22.     },
復制代碼

 

  輸入框輸入事件:

  1. bindKeyInput: function (e) {
  2.         var self = this;
  3.         self.setData({                                        //更新searchKey的值
  4.                 searchKey: e.detail.value
  5.             });
  6.         if (e.detail.value == "") {                           //如果值為空且當前未顯示熱門關鍵字
  7.             if (this.data.showSearchPanel != 1) {
  8.                 self.setData({
  9.                     showSearchPanel: 1                       //切換為熱門關鍵字
  10.                 })
  11.             }
  12.         }
  13.     },
復制代碼

 

  確認按鈕的點擊事件:

  1. searchOk: function (e) {
  2.         var self = this;
  3.         var searchKey = this.data.searchKey;                   //獲取searchKey的值
  4.         if (searchKey != "") {
  5.             self.setData({
  6.                 showSearchPanel: 3                            //顯示搜索結果
  7.             });
  8.             self.addHistorySearchs(searchKey);                  //添加到歷史記錄
  9.             MusicService.getSearchMusic(searchKey, function (data) {
  10.                 if (data.code == 0) {
  11.                     var songData = data.data;
  12.                     self.setData({
  13.                         searchSongs: songData.song.list,
  14.                         zhida: songData.zhida
  15.                     });
  16.                 }
  17.             });
  18.         }
  19.     },
復制代碼

 

  搜索結果item的點擊事件,分為專輯與歌曲兩種:

  1.     zhidaTap: function (e) {                           //專輯的跳轉事件
  2.         var dataSet = e.currentTarget.dataset;
  3.         var mid = dataSet.id;
  4.  
  5.         app.setGlobalData({ 'zhidaAlbummid': mid });     //將專輯id保存為全局變量
  6.         wx.navigateTo({                                //頁面跳轉
  7.             url: '../cdinfo/cdinfo'
  8.         })
  9.  
  10.     },
  11.     musuicPlay: function (e) {                   //歌曲的跳轉事件
  12.         var dataSet = e.currentTarget.dataset;
  13.         //TODO
  14.         }
  15.     },
復制代碼

 

  歌曲的跳轉事件相對復雜(不只是要跳轉,而且要加入播放列表),我們留到播放頁再更改這部分吧。

  

  至此,首頁內容全部完成(準確的說還缺少推薦頁與搜索結果頁向音樂播放頁跳轉的事件)。

  

  上一節:微信小程序小白項目開發案例之音樂播放器—檢索頁(中)

  下一節:微信小程序小白項目開發案例之音樂播放器——列表頁

重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個小商店

第三部分:如何登錄小商店

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結算

第十部分:小程序客服

第十一部分:電商創業

第十二部分:小程序游戲開發

主站蜘蛛池模板: 久久伊人精品|91精品色|精产国品一区二区三区四区|日韩影视在线|国产男女猛烈无遮挡免费视频网站|成品片=a免免费人看 | 国产精品久久国产三级国不卡顿|2021国内精品久久久久精免费|天天舔天天插|2021国产在线观看不卡视频|久久久久国色=a∨免费看|伊人国产精品视频 | 免费=av成人|無碼噴水國產高潮=aV|www.91麻豆|亚洲欧美视频一级|欧美一站二站|91在线日本 | 亚洲v=a欧美v=a国产v=a黑人|蜜臀=av午夜一区二区三区gif|69人人|国产精品免费大片|亚洲日产=av中文字幕|国产精品香蕉成人网在线观看 | 成人字幕网zmw|日本一区高清视频|#NAME?|麻豆播放|麻豆传媒作品|国产高清在线观看一区 | 中文字幕无码免费久久91|wwwwww在线观看|白天操夜夜操|92福利视频1000免费|69精品丰满人妻无码视频=a片|97在线中文字幕免费公开视频 | 美女黄视频网站|热热色影音先锋|国产精品久久久久久久久久ktv|最近免费中文字幕MV在线视频3|日本在线无|夜夜爽久久揉揉一区 | 大地免费资源|成人综合色区|无码综合天天久久综合网|男人猛躁女人网站|国产午夜福利小视频合集|国产女人与公拘交在线播放 | 亚洲精品第一页|边吃吃奶边扎下面很紧爽|porno麻豆|五月天婷五月天综合网|国产精品理论在线无码|国产资源网站 | 久久91|伊人网中文字幕|9191免费视频|黄动漫免费在线观看|女人和拘做受大片免费看|精品无线一线二线三线 | 久久撸视频|久久久久亚洲=aV无码专区喷水|国产成人无码精品久久二区三区|少妇扒开粉嫩小泬视频|欧洲黑大粗无码免费|亚洲成人=av | 日本欧美在线观看|91香蕉在线极品观看|两个人看的www高清视频中文|九九久久影院|偷拍超碰|久久99国产综合精品免费 | 免费极品=aV一视觉盛宴|大陆少妇xxxx做受|懂色一区二区二区=av免费观看|女人的超长巨茎人妖在线视频|欧美激情国产精品视频一区二区|精产国品久久一二三产区区别 | 亚洲第一精品区|久久久WWW影院人成|mmmwww在线看片免费|日本在线资源|亚洲精品综合久久|毛片中文字幕 | 久热只有精品|日韩一级片视频|操孕妇逼视频|97精品|视频在线观看一区二区|#NAME? | 亚洲精品=a级九色|99在线啪|欧美中文视频|亚洲精品国产一区二区色欲影院|精品久久久久久亚洲精品|性欧美free德国极品 | 精品日本一区二区三区在线观看|日日操夜夜摸|国产成人无码网站m3u8|欧美性猛交xx|亚洲自拍偷拍一区二区|国产免费无码成人=a片在线观看 | 成人午夜久久|成人久久18免费网站麻豆|国产精品免费一区二区三区在线观看|男人天堂黄色|蜜臀二区|www亚洲免费 | 欧美性猛片=a=a=a=a=a=a=a做受|成年人网站91|997xx.亚洲第一区|中文在线最新版天堂|#NAME?|国产精品久久久久久久久久久免费 | 精品成人免费一区二区三区|亚洲专区在线|欧美裸体xxxx极品少妇软件|欧洲vi一区二区三区|免费激情网站|久久久青 | 99免费在线播放99久久免费|伊人久久在|在线观看91精品视频|国产精品国产三级国产=a|毛片视频大全|亚洲黄色片免费看 激情综合欧美|日本一区欧美|97色伦欧美一区二区日韩|国产东北女人做受=av|又色又爽又黄又粗暴的小说|中文字幕无码日韩欧毛 | 内射小寡妇无码|丰满少妇被猛烈进入=av久久|日韩=a无v码在线播放|91亚洲国产视频|男人和女人高潮免费网站|操久在线 国产精品一区2区3区|91蝌蚪在线播放|一级国产20岁美女毛片|国产伦精品一区二区三区视频不卡|少妇内射兰兰久久|日本成人=a | 日本三级韩国三级欧美三级|日韩黄色大片免费看|美国黄色小视频|久久精品国产亚洲=aV麻豆~|中文字幕人成人|一级在线免费 | 国产草草影院一区二区三区|91视频看看|国产一级淫片=a视频免费观看|欧美一区综合|#NAME?|国产黄毛片 | 亚洲欧美一|欧美=aⅴ视频|青青草国产免费|黄色毛片久久久久久久久久久|精品久久久久中文字幕日本|一边摸一边做爽的视频17国产有奶水 | 国产一区二区三区精品久久久|欧美午夜一区二区|久草新免费|91=av成人|男人午夜在线|亚洲欧美国产vr在线观 | 国产草草影院|欧美性生交大片免费看|67194熟妇在线观看永远免费|偷偷碰偷偷鲁免费视频|欧美性生交xxxx乱大交3|激情麻豆视频 | 五月婷六月婷婷俺也去|一区二区三区免费|亚瑟国产精品久久|成人无码h动漫在线网站免费|在线视频色在线|XXXX日本熟妇HD | h黄视频在线观看|日韩精品=a=a=a|高h喷水荡肉爽文np肉色学男男|99精品中文字幕|C=aOPORN成人免费公开|久热久爱 | 成人=av一区二区三区在线观看|欧美日韩中文字幕一区二区三区|#NAME?|青青草视频网|日韩=av在线一区二区三区|老司机在线精品视频播放 | 在线观看免费黄网|久久久久久久久久久鸭|91社影院|日本一区免费网站|尹人香蕉久久99天天拍|任我爽橹在线精品视频 | 午夜福利免费院|久草成色在线|一区二区国产高清视频在线|哪里有免费的黄色网址|亚洲久久在线观看|人妻中文无码就熟专区 | 女人一区|午夜成人毛片免费观看蜜桔视频|高清无码不用播放器=av|91性网|无码一区二区|一区二区三区三州在线观看视频 | 国产成人毛片在线视频软件|日韩欧美一区二区三区不卡在线|中文亚洲字幕|91=av在线影院|涩涩视频在线看|欧美日韩在线观看二区视频 | 欧美一区二区三区四区在线观看|天堂国产在线观看|一级片免费在线观看|毛茸茸xxxx|melody在线高清免费观看动漫|国产性色=aV高清在线观看 | 日本最新免费二区|亚洲无人区一区二区三区|1769国内精品视频在线播放|色姑娘天天干|日本ssswww|国产vps毛片 | 在线视频免费观看爽爽爽|午夜视讯|国产传媒在线视频|综合国产一区|#NAME?|777午夜精品 | 国产同事露脸对白在线视频|91在线91|国产免费看=av大片的网站吃奶|精品国产鲁一鲁一区二区张丽|国产对白久久|5lⅴ精品国产91久久 | 视频麻豆|91嫩草在线免费观看|久久国产午夜|黑人与日本少妇J=aP=aNESE|免费大片黄在线观看|91色一区二区三区 | 女教师大荫蒂毛茸茸|无码免费中文字幕视频|CHINESE少妇激情|久久精品国产亚洲=aV麻豆长发|亚洲第一页夜|欧美三级网站在线观看 | 干亚洲美女|亚洲视频精选|91国自视频|亚洲一级影片|韩国三级在线中文字幕无码|xxx黄色片 |