阅读更多

11顶
1踩

Web前端
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标签内部。也可以将各种事件绑定到该元素。
  // Create Basic Div Element with
  // class "className"
  var main_box  = new Element('div', {'class': 'className'});

运行上面的代码,将创建一个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创建类及它的其他高级功能前请务必先弄请上述这些,因为它们都是基础。欢迎发表任何评论。

Via  xpertdeveloper

11
1
评论 共 6 条 请登录后发表评论
6 楼 beidajadebird 2014-07-16 14:48
5 楼 wenxiang_tune 2011-11-28 09:27
写得很好,谁用谁知道。
4 楼 hlylove 2011-11-26 18:51
这是新闻?
3 楼 zhangpurple 2011-11-26 15:41
Mootools  和jquery 在一个数量级上没有,就比如java和C#
2 楼 Pigwen 2011-11-26 11:57
jQuery makes DOM fun, Mootools makes Javascript fun.
1 楼 mvpzhoulong 2011-11-26 11:43
一直用JQUERY

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • FileZilla 使用过程中可能遇到问题 及 解决办法

    FileZilla,可以说是目前最好的FTP工具,自从有了它,我就不再使用FlashFXP,还是开源免费的软件好!它的多线程上传下载是最牛B的,可达10线程,大大提高了传输速度,节约了您的宝贵时间,强烈推荐大家使用。 废话不多说,下面说一下本人在使用过程中遇到的问题,可能大家曾经或将来也会遇到的。 1.在传输意外中断,想续传或覆盖时,提示类似 ftpcontrolsocket.cpp(

  • FilaZilla: Waiting for replies to skip before sending next command...

    方法:在编辑-设置-连接里,把超时秒数改为 非0 即可。

  • windows server 2008 Asp.net 网站环境配置

    1.建立用户www,隶属于:

  • 如果你还在彷徨,看看这些...

    4、掌握多线程、动态链接库、OCX等软件开发基础知识,具有Windows图形显示编程经验优 先考虑; 5、熟悉Microsoft SQL Server数据库的使用,具有数据库设计与SQL开发经验; 6、数学基础扎实,具有较强的算法...

  • js面试题

    1、介绍js的基本数据类型  答: Undefined、Null、Boolean、Number、String   2、js有哪些内置对象?  答:数据封装类对象:Object、Array、Boolean、Number 和 String  其他对象:Function、...

  • 漫谈js自定义事件、DOM/伪DOM自定义事件

    一、说明、引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾...事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载。关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事

  • 前端学习--js.2

    写一个通用的事件侦听器函数  markyun.Event = {   // 页面加载完成后   readyEvent : function(fn) {   if (fn==null) {   fn=document;   }   var oldonload = window....

  • 那些年我准备的前端面试题

    commonJS相关: (1)在commonJS规范中,require,exports,module,__filename,__dirname都是通过动态编译后添加到模块的...而且必须弄清楚一点:exports是一个对象,如果重新赋值,那么不会反映到外面,但是module.expo

  • 迁移其他jquery文章之二

    界面展示是很简单的: 我尽量在讲解一个知识点的时候不掺杂其他知识点,这样更有针对性,我认为,不然看起来代码既多又没有重点了。 十五、jquery实现图片放大镜的效果 这个案例注定又是一个吊炸天的分享,就不...

  • 避开10大常见坑:DeepSeekAPI集成中的错误处理与调试指南.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

  • 前端分析-2023071100789

    前端分析-2023071100789

  • 基于kinect的3D人体建模C++完整代码.cpp

    基于kinect的3D人体建模C++完整代码.cpp

  • 搞机工具箱10.1.0.7z

    搞机工具箱10.1.0.7z

  • GRU+informer时间序列预测(Python完整源码和数据)

    GRU+informer时间序列预测(Python完整源码和数据),python代码,pytorch架构,适合各种时间序列直接预测。 适合小白,注释清楚,都能看懂。功能如下: 代码基于数据集划分为训练集测试集。 1.多变量输入,单变量输出/可改多输出 2.多时间步预测,单时间步预测 3.评价指标:R方 RMSE MAE MAPE,对比图 4.数据从excel/csv文件中读取,直接替换即可。 5.结果保存到文本中,可以后续处理。 代码带数据,注释清晰,直接一键运行即可,适合新手小白。

  • 性价比革命:DeepSeekAPI成本仅为GPT-4的3%的技术揭秘.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

  • 基于ANSYS LSDyna的DEM-SPH-FEM耦合模拟滑坡入水动态行为研究,基于ANSYS LSDyna的DEM-SPH-FEM耦合的滑坡入水模拟分析研究,基于ansys lsdyna的滑坡入水

    基于ANSYS LSDyna的DEM-SPH-FEM耦合模拟滑坡入水动态行为研究,基于ANSYS LSDyna的DEM-SPH-FEM耦合的滑坡入水模拟分析研究,基于ansys lsdyna的滑坡入水模拟dem-sph-fem耦合 ,基于ANSYS LSDyna; 滑坡入水模拟; DEM-SPH-FEM 耦合,基于DEM-SPH-FEM耦合的ANSYS LSDyna滑坡入水模拟

  • auto_gptq-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

    auto_gptq-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

  • 复件 复件 建设工程可行性研究合同[示范文本].doc

    复件 复件 建设工程可行性研究合同[示范文本].doc

  • 13考试真题最近的t64.txt

    13考试真题最近的t64.txt

Global site tag (gtag.js) - Google Analytics