中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序音樂播放器的檢索頁如何制作

發布時間:2022-03-15 10:56:35 來源:億速云 閱讀:174 作者:iii 欄目:開發技術

本篇內容介紹了“微信小程序音樂播放器的檢索頁如何制作”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  這個函數很簡單,我們在寫歷史記錄頁面時,已經用到了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.     },

“微信小程序音樂播放器的檢索頁如何制作”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正宁县| 彭阳县| 呈贡县| 吴旗县| 河曲县| 陈巴尔虎旗| 耿马| 黔东| 虎林市| 札达县| 和静县| 迁西县| 揭西县| 五大连池市| 竹溪县| 玛多县| 望奎县| 乌鲁木齐县| 南阳市| 富裕县| 城口县| 呈贡县| 西安市| 贡嘎县| 兴海县| 丹棱县| 揭阳市| 柳江县| 抚远县| 陕西省| 孝昌县| 漳州市| 元氏县| 大竹县| 苏尼特右旗| 石楼县| 桑日县| 河北省| 象州县| 科技| 双桥区|