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>