关于MooTools你应该熟知的6个基本知识
MooTools是一个精简、模组化同时也面向对象的JavaScript框架,它设计给中等和进阶的JavaScript开发人员使用。使用 MooTools优美、详细而条理分明的API,可让你写出强大、富有弹性且跨浏览器的程序。和jQuery一样,MooTools也是非常优秀的 JavaScript框架。不过相对jQuery来说,MooTools的相关资源实在太少了。正如本文作者所言,MooTools代表了“My Object Oriented Tools”。
本文介绍了MooTools框架的一些基本知识,非常有用(关于MooTools与jQuery的区别,可以看看MooTools开发人员同时也是MooTools Essentials一书作者写的这篇文章)。下为全文:
如果你熟悉MooTools,以下介绍的内容可能你已经经历过了。但如果是MooTools新手,那么弄懂这些对你将很有用,因为它们是所有MooTools代码都可能面临的。
一、DOM就绪
这是在DOM定义时执行的窗体事件。MooTools团队设计该事件在DOM初始化时即发生。
这一设计旨在解决window.load事件的弊端。
通过DomReady,我们可以在DOM加载时即执行脚本而无须等待图片或其他脚本的加载。
如果你想确保代码在试图访问DOM元素时它存在,最好在将代码放至“Dom Ready”事件中。
下面是其一个代码片段。
window.addEvent('domready', function(){
// Your code here
console.log('DOM is ready....')
});
Domready与window.load的区别可以查看这篇文章。
二、创建新元素
为了构建丰富的Web应用程序或者更好地利用AJAX技术,你可能不得不不断地去创建HTML元素。使用MooTools则很容易创建一个新的元素。
你可以轻松地新建元素插入其他元素中或者body标签内部。也可以将各种事件绑定到该元素。
运行上面的代码,将创建一个DIV,不过在网页上你还不能看到任何东西。这是因为你必须将DIV插入其他元素或body中。因此,你应该再增加一行代码。
// Create Basic Div Element with
// class "className"
var main_box = new Element('div', {'class': 'className'}); // place element into Body tag
$$('body').adopt(main_box);
三、元素选择器
元素选择器是所有JavaScript框架都必须拥有的组件。MooTools使用了一个机灵而独立的选择器引擎。
在MooTools中,使用$和document.id来代替document.getElementById。你只需要提交元素的ID。$$用于获取那些多重的元素,比如那些带有特定类名或者特定编号的元素。
$和document.id将返回所选元素的对象,而$$返回选定元素的数组。
让我们来看看在MooTools中选择HTML元素的各种方式。
// get Element with ID "name"
$('name')
document.id('name') // Get All Elements with Class "class"
$$('.class') // Get All Elements which
// ID starting with "demo_"
$$('[id^=demo_]') // Get All Elements
// ID Ending with "_demo"
$$('[id$=_demo]') // Get All Div Elements
// class ending with "_demo"
$$('div[class$=_demo]') // Get all links with class "demo_link"
$$('a.demo_link')
四、事件绑定
在Mootools中你可以将各种事件绑定到HTML元素中,这可通过addEvent方法来实现。不过,你需要先将欲绑定事件的元素对象化。
var obj = $('id_of_div');
obj.addEvent('click', function(){
alert('I am clicked');
});
上面的代码即实现了将事件绑定至对象化的HTML元素。当然你也可以在一个元素中绑定多个事件。
使用MooTools如何创建一个自定义的事件可以查看这篇文章。
五、元素的基本类型
基本的样式包括为元素添加/删除CSS属性或者css类。同样,在执行此项任务前你需要先将元素对象化。
var obj = $('id_here');
// Add Single Style
obj.setStyle('color','#000000');
// Add Multiple Styles
obj.setStyles({
'color':'#000000',
'float':'left'
});
// Remove Style
obj.removeStyle('color');
// Add Class
obj.addClass('class1');
// Remove Class
obj.removeClass('class1');
六、浏览器类型判断
MooTools框架有着很好的类可以用来检测用户的浏览器类型。看看下面的代码你就会了解了。
switch(Browser.name)
{
case "safari":
alert('I am Safari');
break;
case "chrome":
alert('I am Chrome');
break;
case "firefox":
alert('I am FireFox');
break;
case "opera":
alert('I am Opera');
break;
case "ie":
alert('I am IE');
break;
}
最后
关于MooTools框架要学习的还有很多,但在使用MooTools创建类及它的其他高级功能前请务必先弄请上述这些,因为它们都是基础。欢迎发表任何评论。
关于MooTools你应该熟知的6个基本知识的更多相关文章
- 使用webstorm操作git
0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...
- CTF SQL注入知识点
理解常用的登录判断 select * from user where username='admin' and password='123' 数据库元信息 infomation_schema 懂PHP ...
- DDD(领域驱动设计)总结
基本概念: 领域驱动设计(简称 ddd)概念来源于2004年著名建模专家eric evans发表的他最具影响力的书籍:<domain-driven design –tackling comple ...
- 如何使用webstorm去操作git
0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...
- webstorm的git操作使用
0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...
- 说说你所熟知的MSSQL中的substring函数
说说你所熟知的MSSQL中的substring函数 *:first-child { margin-top: 0 !important; } body>*:last-child { margin- ...
- 初次接触mootools
以下是今天所学代码,网上有这篇博客可供参考,另外还是推荐官方文档 ,以下是今天所敲代码: //用mootools创建类的方式: //方式1:用标准方式传入一个对象字面量 /* var Person = ...
- Mootools插件-闪烁的标题
转自:http://www.cnblogs.com/see7di/archive/2012/10/09/2716024.html 回想起来,我已经好久没有写点啥了,尤其是关于Mootools方面的东西 ...
- js在mootools框架下的new Class
首先,在HTML文件中引入mootools.js. mootools-more.js.mootools-core.js,然后就能使用mootools封装的一些特性. 几乎类似于面向对象. mootoo ...
随机推荐
- poj 1684 Lazy Math Instructor(字符串)
题目链接:http://poj.org/problem?id=1686 思路分析:该问题为表达式求值问题,对于字母使用浮点数替换即可,因为输入中的数字只能是单个digit. 代码如下: #includ ...
- 动画画圆的效果特效ios源码
一款不错的支持动画画圆的效果特效源码,该效果实现了动画画圆,还可以扩展成画其他平面图形功能等,大家可以下载看看吧. //定义所需要画的图形 -(void)intiUIOfView { U ...
- 物理DG主备库切换时遇到ORA-16139: media recovery required错误
在物理DG主备库切换时遇到ORA-16139: media recovery required错误 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRI ...
- C++运算符重载为成员函数
#include<iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0 ...
- 2015 5.16 C# 继承和多态
类的层次结构有两种基本的构造方式 自顶向下 自底向上 基类的保护成员是指允许派生类的方法代码访问,而不是指通过派生类的对象访问 如果基类中的字段通过公有且可读写的属性进行了封装,那么建议将字段定义 ...
- sql--关于exec和sp_execute
sql:exec与sp_excutesql的比较 exec与sp_execute都可以执行存储过程和批处理动态sql语句,以下所属均是关于批处理动态sql语句方面. 一.关于输入参数与输出参数 1.使 ...
- 使用Xib添加自定义View
1.新建Cocoa Touch Class以及UI View,2者同名 2.设置UI View的File's Owner——Custom Class为之前新建类 3.设置Xib中View与类关联 4. ...
- Spring学习之Aop的基本概念
转自:http://my.oschina.net/itblog/blog/209067 AOP的基本概念 AOP从运行的角度考虑程序的流程,提取业务处理过程的切面.AOP面向的是程序运行中的各个步骤, ...
- Bandwidthd+Postgresql数据库配置笔记
Bandwidthd+Postgresql数据库配置笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/zjianbo/article/detai ...
- java的IO流包装不当导致从网页获取的数据出现乱码
从网页上获取数据时必须要注意字符集的问题.处理不慎确实苦不堪言. 例如通过URL连接时,将字节流InputStream包装成字符流(以便直接存为String)时,一定要注意加上charsetName这 ...