mui(".mui-table-view").on('tap','.mui-table-view-cell',function(){ //獲取id var id = this.getAttribute("id"); //傳值給詳情頁面,通知加載新數據 mui.fire(detail,'getDetail',{id:id}); //打開新聞詳情 mui.openWindow({ id:'detail', url:'detail.html' }); })
由於代碼比較複雜,分開講太亂,你們能夠拷貝,詳解寫在註釋,javascript
1.首先須要本身下載只有 template-web.js 文件,獲取方法:css
npm install art-template --savehtml
2.拷貝 index.html 代碼:java
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <script src="js/mui.min.js"></script> <link href="css/mui.min.css" rel="stylesheet" /> <link rel="stylesheet" type="text/css" href="css/index.css" /> </head> <body> <!--頭部信息--> <header class="mui-bar mui-bar-nav title"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">知乎日報</h1> </header> <script type="text/javascript" charset="utf-8"> mui.init({ subpages: [{ url: 'html/content.html', id: 'content.html', styles: { top: '45px', //mui標題欄默認高度爲45px; bottom: '0px' //默認爲0px,可不定義; } }] }); </script> <nav class="mui-bar mui-bar-tab"> <a class="mui-tab-item mui-active"> <span class="mui-icon mui-icon-home"></span> <span class="mui-tab-label">首頁</span> </a> <a class="mui-tab-item"> <span class="mui-icon mui-icon-phone"></span> <span class="mui-tab-label">電話</span> </a> <a class="mui-tab-item"> <span class="mui-icon mui-icon-email"></span> <span class="mui-tab-label">郵件</span> </a> <a class="mui-tab-item"> <span class="mui-icon mui-icon-gear"></span> <span class="mui-tab-label">設置</span> </a> </nav> </body> </html>
<!doctype html> <html> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <link href="../css/mui.min.css" rel="stylesheet" /> </head> <body> <div class="mui-content"> <div class="mui-slider"> <div class="mui-slider-group"> <!--第一個內容區容器--> <div class="mui-slider-item"> <!-- 具體內容 --> <img src="../img/1D52F569E73F611465E9BB3656E9628B.png" /> </div> <!--第二個內容區--> <div class="mui-slider-item"> <!-- 具體內容 --> <img src="../img/8CF9B879550CD10AA9B7B58777367C7F.png" /> </div> </div> </div> <ul class="mui-table-view" id="zhihu"> </ul> </div> <script src="../js/mui.min.js"></script> <!-- 導入 template-web.js 官網下載:http://aui.github.io/art-template/ csdn下載:https://download.csdn.net/download/qq_40147863/10689407 --> <script src="../js/template-web.js" type="text/javascript" charset="UTF-8"></script> <!-- 使用<script id="list" type="text/html"> 拼接 html --> <script id="list" type="text/html"> <!-- 循環語法 --> {{each stories as list}} <li class="mui-table-view-cell mui-media" id="{{list.id}}"> <a href="javascript:;"> <img class="mui-media-object mui-pull-left" src="{{list.images[0]}}"> <div class="mui-media-body"> <!-- 獲取 title --> {{list.title}} </div> </a> </li> {{/each}} </script> <script type="text/javascript"> //plusReady,用來定義加載dom後的操做 mui.plusReady(function() { //發起 ajax請求,地址使用知乎日報 api mui.ajax('https://news-at.zhihu.com/api/4/theme/11', { /* data 是參數,咱們這裏不須要,咱們只是從 api獲取數據 data: { username: 'username', password: 'password' }, */ dataType: 'json', //服務器返回json格式數據 type: 'get', //HTTP請求類型 timeout: 10000, //超時時間設置爲10秒; headers: { 'Content-Type': 'application/json' }, success: function(data) { //服務器返回響應,根據響應結果,分析是否登陸成功; //咱們如今控制檯打印一下請求結果 //console.log(data) //而後獲取json數據中的具體值 //console.log(data.stories[0].title) //list 對應上面的 id,就是獲得 拼接的 html var html = template('list', data); //把獲得的 html 放到id爲 zhihu 的 ul 標籤裏 document.getElementById("zhihu").innerHTML = html; //console.log(html); }, error: function(xhr, type, errorThrown) { //異常處理; console.log(type); } }); }); //網頁預加載 mui.init({ preloadPages:[{ id:'info', url:'info.html' } ] }); var detailPage = null; //添加列表項的點擊事件 mui('.mui-table-view').on('tap', 'li', function(e) { var id = this.getAttribute('id'); //得到詳情頁面 if(!detailPage){ detailPage = plus.webview.getWebviewById('info'); } //觸發詳情頁面的newsId事件 mui.fire(detailPage,'id',{ id:id }); //打開詳情頁面 mui.openWindow({ id:'info' }); }); </script> </body> </html>
<!doctype html> <html> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <link href="../css/mui.min.css" rel="stylesheet" /> </head> <body> <div class="mui-content"> <ul class="mui-table-view" id="newsinfo"></ul> <script id="lists" type="text/html"> {{body}} </script> </div> <script src="../js/mui.min.js"></script> <!-- 導入 template-web.js 官網下載:http://aui.github.io/art-template/ csdn下載:https://download.csdn.net/download/qq_40147863/10689407 --> <script src="../js/template-web.js" type="text/javascript" charset="UTF-8"></script> <script type="text/javascript"> mui.init(); //添加newId自定義事件監聽 window.addEventListener('id', function(event) { //得到事件參數 var id = event.detail.id; //根據id向服務器請求新聞詳情 //plusReady,用來定義加載dom後的操做 mui.plusReady(function() { //發起 ajax請求,地址使用知乎日報 api mui.ajax('https://news-at.zhihu.com/api/4/news/'+ id, { /* data 是參數,咱們這裏不須要,咱們只是從 api獲取數據 data: { username: 'username', password: 'password' }, */ dataType: 'json', //服務器返回json格式數據 type: 'get', //HTTP請求類型 timeout: 10000, //超時時間設置爲10秒; headers: { 'Content-Type': 'application/json' }, success: function(data) { //服務器返回響應,根據響應結果,分析是否登陸成功; //咱們如今控制檯打印一下請求結果 console.log("666"); console.log(data); //而後獲取json數據中的具體值 //console.log(data.stories[0].title) //list 對應上面的 id,就是獲得 拼接的 html var html = template('lists', data); //把獲得的 html 放到id爲 zhihu 的 ul 標籤裏 document.getElementById("newsinfo").innerHTML = data.body; //console.log(html); }, error: function(xhr, type, errorThrown) { //異常處理; console.log(type); } }); }); }); </script> </body> </html>