自己写个扩展把Mootools的语法改的和Jquery的语法一模一样
如果你曾经是jquery的写手,而又不想学mootools的语法格式的话,我们可以修改一下mootools的语法格式让其语法格式和jq完全相同,这样你就不但不必在学习mt的语法了,同时还可以体验到mt的优点,在这种状况下我们可以做到不改变jquery已有的任何语句只修改一下对js框架的调用即可(即把对jquery.js的调用换成对mootools.js的调用),保证网站不会出错,听起来是挺唬人.实际上完全能做得到.
Mootools有强大的扩展机制,这种机制允许我们随意定制Mootools的语法格式,这是一个好消息,不好的消息是如果想把jquery的语法格式改成mt那打死也做不到,废话不多说我们分别看一下两个例子比较一下Mootools和jquery的语法差别:
//Jquery语句$('id').css('color','red');$('id').html('ff');$('id').click(function(){}); //Jquery的ajax$.ajax({ type:"post",url:"?", data:"lat=風景&lng=Boston", error:function(msg){alert(msg);return false;}, success:function(msg){if(msg.indexOf('Error:')!=-1){alert(msg);return false;} alert(msg+'|'+msg.length); }}); //Mootools语句$('id').setStyle('color','red');$('id').set('html','ff');$('id').addEvent('click',function(){}); //Mootools的ajaxvar myElement=document.id('myElement');var myRequest=new Request({ url:'getMyText.php', method:'get', onRequest:function(){ myElement.set('text','loading...'); }, onSuccess:function(responseText){ myElement.set('text',responseText); }, onFailure:function(){ myElement.set('text','Sorry,your request failed:('); }});document.id('myLink').addEvent('click',function(event){ event.stop(); myRequest.send('userid='+this.get('data-userid'));});
在上边的例子中我分别对照了两种js框架不同的语法结构,细心的童鞋应该能发现两种框架的语法格式其实差异还蛮大的,要把mt的语法修改的和jq一样岂不是天方夜谭,好了,别担心就算不相信我也没关系,但请相信Mt有此能力就行了.
看我的示例代码:
//先来实现一下jquery的html和css方法Element.implement({ html:function(value){return (typeOf(value)=='string')?this.set('html',value):this.get('html'); }, css:function(opt,value){switch(typeOf(opt)){case 'object':this.setStyles(opt);break;case 'string':if(typeOf(value)=='string'){//$('a').css('color','red'); this.setStyle(opt,value); }else{//console.log($('a').css('color')); return this.getStyle(opt); } }return this; }}); //再实现ajax$.extend({ ajax:function(options){var request; options.method=options.type || options.method || 'get';if(options.complete){options.onComplete=options.complete;}if(options.error){options.onFailure=options.error;}if(options.success){options.onSuccess=options.success;}if(options.dataType && options.dataType.toLowerCase()=='html' && Request.HTML){ request=new Request.HTML(options); }else if(options.dataType && options.dataType.toLowerCase()=='json' && Request.JSON){ request=new Request.JSON(options); }else{ request=new Request(options); }if(options.timeout){request.cancel.delay(options.timeout);}return request.send(); }});
好了,有了上边的代码,接下来那就完全可以像写jquery一样去写mootools了,当然了jq的方法很多个,我这里只写了两个外加一个ajax,更多的实现方法就需要你们自己思考着去写了,别人嚼烂了不香.
嘿嘿,我闪人先.
自己写个扩展把Mootools的语法改的和Jquery的语法一模一样相关推荐
- 用PHP写PHP扩展-Another way writing php extensions
前言 目前写PHP扩展主要有三种方法: C语言 C++ php-cpp Zephir Zephir 其中Zephir其实也是先翻译成C语言,然后再编译成扩展的.用Zephir 编写的Phalcon,就 ...
- 用C语言写PHP扩展
用C语言写PHP扩展 1:预定义 在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def 内容是你希望定义的函数名以及参数: int a(int x,int y) s ...
- upload-labs_pass10_点空点绕过_pass11_双写文件扩展名
关于靶场说几点:单纯用phpstudy 可能无法复现所有的漏洞,而且phpstudy中的php可能是线程不安全的,所以建议大家在自己本机或者虚拟机的中亲自搭建一下apache和php的环境,便于复现u ...
- 给微软的依赖注入框架写一些扩展方法
给微软的依赖注入框架写一些扩展方法 Intro 现在在项目里大多都是直接使用微软的依赖注入框架,而微软的注入方式比较简单,不如 AutoFac 使用起来灵活,于是想给微软的依赖注入增加一些扩展,使得可 ...
- Lua 中写 C 扩展库时用到的一些技巧
Lua 中写 C 扩展库时用到的一些技巧(转) 通常,C 扩展库中 C 代码会有一些数据要放在 lua 状态机中.Lua 提供的方案是放在它的 注册表 中.如文档所言,因为 Lua 的注册表是全局共享 ...
- jQuery基本语法和选择器
JQuery 一.JQuery基础语法 1.概念 JQuery是javaScript的一个库,Jquery基于javascript开发出来.目的就是为了简化javascript的开发. 宗旨:&quo ...
- cricheditview实现语法高亮和行号_Markdown语法详解及工具介绍
一.快捷键 加粗 Ctrl + B斜体 Ctrl + I引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl ...
- 【前端基础】20.JQuery基本语法
视频 目录 1.jQuery概述 1.1 JavaScript库 1.2 jQuery的概念 2.jQuery的基本使用 2.1 jQuery的下载 2.2 jQuery的使用步骤 2.3 jQuer ...
- 阿里云面试:什么是语法糖?Java中有哪些语法糖?
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- 什么是语法糖?Java中有哪些语法糖?
本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理 1 语法糖 语 ...
最新文章
- Exchange 2010向外网发邮件的配置
- 30分钟快速搭建移动应用直传OSS服务
- hydra安装及使用
- Linux基础(8)--关于man命令
- 整个电脑键盘被锁住了_希沃智能大屏按键说明,锁屏组合键你知道吗?小心被熊孩子锁住了...
- conda install 报错PackagesNotFoundError: 以及和合理使用源的策略
- vuxui 安装使用,解决npm项目文件严重问题提示
- mst358 温控(热敏电阻)调试
- 华为交换机开启web管理
- html流特性,CSS深入理解流体特性和BFC特性下多栏自适应布局_html/css_WEB-ITnose
- python 正则匹配 条件太多怎么办_python正则中re.findall匹配多个条件
- dell r720光盘启动项_Dell R720服务器安装操作系统
- linux 打印进程日志,Linux系统日志管理:(2)进程统计日志
- shell softech 面料_MAMMUT猛犸象的黑科技大军(服装篇)
- 微信小程序:全局状态管理mobx-miniprogram、mobx-miniprogram-bindings
- 如何安装Ubuntu 20.04 LTS服务器的图文教程
- 《MS17-010(永恒之蓝)—漏洞复现及防范》
- 17 记一次 spark 读取大数据表 OOM OutOfMemoryError: GC overhead limit exceeded
- [收集整理]BT恶心诗全集
- 2022中国(成都)预制品暨调味品展览会
热门文章
- 哈弗h2s车内时间怎么调_你想拥抱的品质生活,就让哈弗H4乐享版帮你实现吧
- 一.第一周golang学习:--string解析成基本数据类型
- python-gui-pyqt5的使用方法-4--自定义信号的初识--多参数的使用
- 帆软填报Execl表格不定行导入
- android 过滤ip,EditText Android过滤器的IP地址###。###。###。###?
- redis jar包_「建议收藏」手把手教你从零搭建一个redis服务
- TensorFlow共享变量
- 《统计学习方法》——逻辑斯蒂回归
- 取代SharedPreferences的多进程解决方案
- mingw,cygwin,gnuwin32,msys,msys2 的区别