自己写个扩展把Mootools的语法改的和Jquery的语法一模一样

本文主要是介绍自己写个扩展把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(){});

//Mootoolsajax
var 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的语法一模一样的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491960

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo