网上关于mootools这个库的信息很少。

公司一些老的项目用到了mootools库,因为要维护,所以接触到了mootools。

mootools(文档)官网:http://www.chinamootools.com/

举一些常用的特性和方法及其示例

1.dom ready

就像使用jquery需要一个ready方法一样,mootools也有一个dom加载完毕后的方法,这是写代码的开始吧。

window.addEvent('domready', function() {
alert('The DOM is ready!');
});

2.事件对象侦听

(1)addEvent 对元素设置一个侦听器

示例:

$('myElement').addEvent('click', function(){
alert('clicked!');
});

(2)addEvents 增加多个事件侦听

示例:

$('myElement').addEvents({
mouseover: function(){
alert('mouseover');
},
click: function(){
alert('click');
}
});

3.获取元素

(1)document.id(别名:$)

var myElement = document.id('myElement');
var myElement = $('myElement');

(2)$$

$$('a'); // 标签名
$$(element1, element2, element3); // 多个元素实例
$$([element1, element2, element3]); // 一个元素集合
$$(document.getElementsByTagName('a')); // 也是一个元素集合
$$('#myElement'); // css选择器
$$('#myElement a.myClass'); // 同上
$$('a, b'); // 同上

返回:一个类数组的元素集合

4.元素对象 Element

(1)new Element 创建一个元素,示例:

// 用一个对象创建一个新的元素
var myAnchor = new Element('a', {
href: 'http://mootools.net',
'class': 'myClass',
html: 'Click me!',
styles: {
display: 'block',
border: '1px solid black'
},
events: {
click: function(){
alert('clicked');
},
mouseover: function(){
alert('mouseovered');
}
}
}); // 使用选择的元素
var myNewElement = new Element('a.myClass');

(2)getElement 取得第一个子元素

var firstDiv = $(document.body).getElement('div');

(3)getElements 取得元素数组

var allAnchors = $(document.body).getElements('a');

(4)set 设置元素属性

两个参数的写法,示例:

$('myElement').set('text', 'text goes here');
$('myElement').set('class', 'active');
// the 'styles' property passes the object to Element:setStyles.
var body = $(document.body).set('styles', {
font: '12px Arial',
color: 'blue'
});

一个参数的写法,示例:

var myElement = $('myElement').set({
// the 'styles' property passes the object to Element:setStyles.
styles: {
font: '12px Arial',
color: 'blue',
border: '1px solid #f00'
},
// the 'events' property passes the object to Element:addEvents.
events: {
click: function(){ alert('click'); },
mouseover: function(){ this.addClass('over'); }
},
//Any other property uses Element:setProperty.
id: 'documentBody'
});

(5)get 取得元素属性

var tag = $('myDiv').get('tag'); // 返回 "div".
var id = $('myDiv').get('id'); // 返回 "myDiv".
var value = $('myInput').get('value'); // 返回myInput的值

(6)erase 移除一个元素的属性

$('myDiv').erase('id'); // 从myDiv上移除了id
$('myDiv').erase('class'); // myDiv元素上不再有class属性

(7)contains 检查是否包含某元素

html:

<div id="Darth_Vader">
<div id="Luke"></div>
</div>

js:

if ($('Darth_Vader').contains($('Luke'))) alert('Luke, I am your father.'); //tan tan tannn...

(8)inject 在某个元素中注入或插入另一个元素

示例:

// 创建三个元素
var myFirstElement = new Element('div', {id: 'myFirstElement'});
var mySecondElement = new Element('div', {id: 'mySecondElement'});
var myThirdElement = new Element('div', {id: 'myThirdElement'}); // 生成的html
<div id="myFirstElement"></div>
<div id="mySecondElement"></div>
<div id="myThirdElement"></div>

// 注入到底部:
myFirstElement.inject(mySecondElement); // 生成的html
<div id="mySecondElement">
<div id="myFirstElement"></div>
</div>

// 注入到顶端
myThirdElement.inject(mySecondElement, 'top'); // 生成的html
<div id="mySecondElement">
<div id="myThirdElement"></div>
<div id="myFirstElement"></div>
</div> // 注入前端
myFirstElement.inject(mySecondElement, 'before'); // 生成的html
<div id="myFirstElement"></div>
<div id="mySecondElement"></div> // 注入后端
myFirstElement.inject(mySecondElement, 'after'); // 生成的html
<div id="mySecondElement"></div>
<div id="myFirstElement"></div>

(9)adopt 在一个元素内部插入一新元素

js代码:

var myFirstElement  = new Element('div#first');
var mySecondElement = new Element('p#second');
var myThirdElement = new Element('ul#third');
var myFourthElement = new Element('a#fourth'); var myParentElement = new Element('div#parent'); myFirstElement.adopt(mySecondElement);
mySecondElement.adopt(myThirdElement, myFourthElement);
myParentElement.adopt([myFirstElement, new Element('span#another')]);

生成的html:

<div id="parent">
<div id="first">
<p id="second">
<ul id="third"></ul>
<a id="fourth"></a>
</p>
</div>
<span id="another"></span>
</div>

(10)dispose 从DOM中移除元素

示例:

html:

<div id="myElement"></div>
<div id="mySecondElement"></div>

js:

$('myElement').dispose();

生成的html:

<div id="mySecondElement"></div>

(11)clone 克隆一个元素,并返回克隆体

html:

<div id="myElement">ciao</div>

js:

// 克隆myElement元素,并添加到它的后面
var clone = $('myElement').clone().inject('myElement','after');

生成的html:

<div id="myElement">ciao</div>
<div>ciao</div>

(12)其他

// hasClass 测试元素是否有某class
$('myElement').hasClass('testClass'); // returns true // 为元素增加一个类
$('myElement').addClass('newClass'); // 删除元素的一个类
$('myElement').removeClass('newClass'); // 切换类,如果已存在则删除,否则添加
$('myElement').toggleClass('myClass'); // 返回前一个兄弟元素节点,不包含纯文本节点
var previousSibling = myElement.getPrevious([match]); // getAllPrevious 返回元素之前所有匹配的元素 // 返回后一个兄弟元素节点,不包含纯文本节点
var nextSibling = myElement.getNext([match]); // 返回父节点
var parent = myElement.getParent([match]); // 返回元素的兄弟节点
var siblings = myElement.getSiblings([match]); // 返回所有元素的子元素
var children = myElement.getChildren([match]); // 清空一个元素的所有子元素
$('myElement').empty();

太长了……

分篇吧

下一篇:mootools常用特性和示例(基础篇2)

mootools常用特性和示例(基础篇1)的更多相关文章

  1. mootools常用特性和示例(基础篇2)

    接着上一篇:mootools常用特性和示例(基础篇1) 1.表单操作 html: <form id="myForm" action="submit.php" ...

  2. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式

    概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...

  3. SQL Server调优系列基础篇(常用运算符总结——三种物理连接方式剖析)

    前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL ...

  4. SQL Server调优系列基础篇(常用运算符总结)

    原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...

  5. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  6. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  7. cocos2dx基础篇(3) 常用重要类

    ---------------------------------------- 入口类main.cpp 主要控制类AppDelegate.cpp -------------------------- ...

  8. 前端总结·基础篇·CSS(三)补充

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 目录 一.移动端 1.1 视口(viewport) 1.2 媒体查询(medi ...

  9. Python 经典面试题汇总之基础篇

    基础篇 1:为什么学习Python 公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python.Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方 ...

随机推荐

  1. 算法题:给你一个自然数N,求[6, N]之内的全部素数中, 两两之和为偶数的那些偶数。

    /* 算法题:给你一个自然数N,求[6, N]之内的全部素数中. 两两之和为偶数的那些偶数. */ #include <iostream> using namespace std; voi ...

  2. LeetCode Implement strStr()(Sunday算法)

    LeetCode解题之Implement strStr() 原题 实现字符串子串匹配函数strStr(). 假设字符串A是字符串B的子串.则返回A在B中首次出现的地址.否则返回-1. 注意点: - 空 ...

  3. BZOJ 1571 DP

    思路: 预处理出在能力值为i的时候 滑雪一次的最小时间 f[i][j]表示i时间 j的能力值 最多的滑雪次数 我先用vector 把课程按起点push进去 1. for(int k=0;k<ve ...

  4. java种instanceof方法和getclass方法的区别

    在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面写个测试类. public c ...

  5. mybatis的XML返回值类型报错

    昨天项目里一直报错说是一个文件里的返回值java.util.hashmap不对,然后去定位这个文件发现并没有问题,后来在全局搜索的帮助下查找了返回值类型为resultMap的文件里看到写的代码里有: ...

  6. 洛谷 P1358 扑克牌

    P1358 扑克牌 题目描述 组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在.计数以及构造等方面的问题.组合数学的主要内容有组合计数.组合设 ...

  7. 数据结构(C实现)------- 单链表

    在单链表中,每个结点包括两部分:存放每个数据元素本身信息的数据域和存放其直接后继存储位置的指针域. 单链表结点的类型描写叙述: typedef int ElemType; typedef struct ...

  8. 2.3 Streams API 官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ 2.3 Streams API 2.3 Streams API 在0..0增加了一个 ...

  9. JavaScript--数据结构与算法之列表

    3.1 列表的抽象数据类型定义 列表:一组有序的数据.每个列表中的数据称为元素.在JavaScript中列表的元素可以是任意的数据类型.列表中保存的元素没有事先的限定,实际使用时的元素数量受到程序内存 ...

  10. 【AIM Tech Round 4 (Div. 1) B】Interactive LowerBound

    [链接]http://codeforces.com/contest/843/problem/B [题意] 给你一个数组模拟的单链表,放在一个长度为n的数组里面,然后告诉你表头的位置在哪里; 你可以最多 ...