sea.js+jQuery+jQueryMobile的模块化开发
来源:互联网 发布:php实现短信验证码 编辑:程序博客网 时间:2024/05/22 16:40
由于现在整个前端都尽量要使用模块化开发,因此不可避免需要使用到前置依赖组件(AMD:如require.js)或就近依赖组件(CMD:如sea.js)。
本文主要是sea.js对jquery及依赖jquery的插件如jQueryMobile的模块化整合。当然还涉及到grunt等自动化管理工具。这些都是做前端模块化开发必不可少的知识。对sea.js还不熟悉的同学请先移步到sea.js官网
用一个案例说明:
目录结构:
index.html文档:
<div class="container"> <!--礼包列表--> <ul class="list"> <li class="item"> <i class="icon icon-gift"></i> <h4>新手大礼包</h4> <p>钻石*50、白银宝箱*2、白银钥匙*2、白银匙*2、 法杖*2、百宝箱*2、金钥匙*2</p> <input type="button" value="领取" class="gift-btn get-btn J_getBtn" data-role="none"/> </li> <li class="item"> <i class="icon icon-gift"></i> <h4>五一集赞礼包</h4> <p>钻石*50、白银宝箱*2、白银钥匙*2、白银匙*2、 法杖*2、百宝箱*2、金钥匙*2</p> <input type="button" value="复制" class="gift-btn copy-btn" data-role="none"/> </li> </ul></div>
jquery.js的CMD规范:
define( function(require, exports, module) {//下面为jquery源码 return $.noConflict(true);});jQueryMobile.js的CMD规范:
define( function(require, exports, moudles) { return function(jQuery) {//jqueryMobie.js源码 };});注意,因为jqueryMobile并非默认支持CMD规范,因而要手动修改源码,将
(function ( root, doc, factory ) {if ( typeof define === "function" && define.amd ) {// AMD. Register as an anonymous module.define( [ "jquery" ], function ( $ ) {factory( $, root, doc );return $.mobile;});} else {// Browser globalsfactory( root.jQuery, root, doc );}}( this, document, function ( jQuery, window, document, undefined ) {//中间保留的源码}));这段代码删除,以便后来将jquery整个对象传递给jqueryMobile实现扩展。
接下来便可使用grunt打包,最后在index.js中,需要把jquery对象传给jQueryMobile实现扩展
define(function(require, exports, moudule){var $ = require('jquery'); require('jqueryMobile')($);//将$对象赋给jqueryMobile//测试下jqueryMobile是否引入成功$(function(){ //点击领取 $('.J_getBtn').on('tap',function(e){ console.log('mm'); }); });})点击领取按钮,最后可以发现在控制台看到
当然,我只是踩了好几个坑才摸索出这个方法,应该还有其他方法。希望大家集思广益,找出更简单有效的方法。
0 0
- sea.js+jQuery+jQueryMobile的模块化开发
- sea.js的模块化开发
- sea.js的模块化开发起步
- js模块化开发----sea.js
- 如何通过sea.js进行模块化开发
- 前端模块化开发 CMD规范 sea.js
- js模块化之sea.js
- Extjs3+sea.js 实现模块化
- javascript模块化加载sea.js
- jquery和jqueryMobile的js文件引入
- sea.js开发:快速入门sea.js
- javaScript 模块化开发 AMD(异步加载 require.js) 和CMD( sea.js) 1
- JavaScript模块化解决方案Sea.js(上)
- JavaScript模块化编程补充Sea.js
- 把jquery引入sea.js或require.js的方法
- REQUIRE.JS和SEA.JS模块化加载JS
- JavaScript模块化解决方案Sea.js+Grunt(中)
- sea.js简单的调用
- Caffe代码阅读笔记(1)
- 如何写文献综述
- 进程保活-踩坑篇
- C# 静态类与非静态类、静态成员的区别
- 置信区间、置信水平、边际误差
- sea.js+jQuery+jQueryMobile的模块化开发
- 抽象类的应用
- android ellipsize的使用
- 硬币找零
- 连续字符统计(如AABBBCDD, A2B3C1D2)
- 二叉树的序列化
- 源码安装grpc
- 安卓安全综述
- oracle 表误删或者数据误改修复解决方案