define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'address'], function ($, template, IScroll, user, product, native, config, address) { var backHash; function back(event) { event.preventDefault(); $(document).trigger('spa:navigate', { hash: backHash, pushData: { dontNeedReload: true } }); } /* * 模块结构:5部分。 * title:题目。 * content:不知道是什么,似乎从没用过。 * 以下可以当作生命周期回调,虽然并不清楚是什么时候回调的…… * init:根据上一个页面传来的pageData初始化本页数据,生成页面,绑定事件。 * beforeopen:接收上一个页面传来的数据、有需要的话重置数据 * afteropen:做一些网络请求。 * beforeclose: */ return { title: '家庭保洁', body: '', init: function (pageData, dtd) { /* this是什么? */ var $view = this; var $doc = $(document); /* 定义按钮事件。 * 为什么不是$(selector).onclick(function)呢? */ // 返回 $view.on('swipeRight', function (event) { back.call(this, event); }); $.newTouch('.back-button', function (event) { back.call(this, event); }, $view); $view.on('tapBackButton', function (event) { back.call(this, event); }); /*活动入口*/ $.newTouch('.Long-term-set', function (event) { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'activity-day', pushData: { needReset: true, backHash: 'secondary' } }); }, $view); /* 点击产品列表的某一项 */ $.newTouch('.btn-product', function (event) { event.preventDefault(); var type = parseInt($(this).attr('data-product-type')); /* * 这个写法是SPA路由框架规定的。 * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件 */ $doc.trigger('spa:navigate', { hash: 'placeOrder', pushData: { product: product.allList[type - 1], needReset: true, backHash: 'secondary' } }); }, $view); // im $.newTouch('.btn-action-logo', function (event) { event.preventDefault(); window.location.href = '/index.php?r=o2o/advisory/im'; }, $view); /*首页*/ $.newTouch('.btn-action-my-order', function () { event.preventDefault(); $doc.trigger('spa:navigate', { hash: '', pushData: { needReset: true } }); }, $view); /*个人中心*/ $.newTouch('.btn-action-coupon', function (event) { event.preventDefault(); user.checkLogin(function () { $doc.trigger('spa:navigate', { hash: 'mine', pushData: { needReset: true } }); }); }, $view); /* 不知道什么意思。*/ dtd.resolve(); }, beforeopen: function (pageData, dtd) { /*获取上一页跳转的路由名称*/ var pushData = pageData.pushData; backHash = pushData.backHash ? pushData.backHash : ''; dtd.resolve(); }, afteropen: function (pageData, dtd) { var $view = this; var $doc = $(document); if (pageData.pushData && pageData.pushData.needReset) { /*var tpl = template('secondary/index', { showNavBar: !config.isWX, userName: user.name == '' ? '未登录' : user.name, userBalance: user.balance, defaultAddress: addressStr });*/ var tpl = template('secondary/index', {showNavBar: !config.isWX}); $('.spa-page-body', $view).html(tpl); setTimeout(function () { pageData.scroll = new IScroll('#secondaryScroll'); }, 500); setTimeout(function () { /*设置页面高度-开始*/ $('#list0').height(($('.btn-product').height() * 3) + $('.prevent-scroll').height());//设置ul高度; /*设置页面高度-结束*/ }, 200); } /* 又是这个。不知道什么玩意…… */ dtd.resolve(); }, beforeclose: function (pageData, dtd) { dtd.resolve(); } } })