`

dojo,jquery,mootools三种框架实现的ajax效果

阅读更多
  经常在微BLOG上,或者象tudou,ku6等视频网站上,看到"查看评论"的按钮,点后
就显示列表,是AJAX效果的,找到老外的一篇文,讲这个实现:
http://davidwalsh.name/twitter-button

摘录如下:
先做好按钮
<FORM class=follow-form action=twitter-follow.php method=post>
<INPUT type=hidden value=123456 name=followID>
<BUTTON class="btn follow" title=123456 type=submit value="Actions">
    <I></I><SPAN>follow</SPAN>
  </BUTTON>
</FORM>
之后是样式
/* twitter button and its children */
2button.btn {
3  -moz-border-radius:4px;
4  -webkit-border-radius:4px;
5  background-attachment:scroll;
6  background-color:#ddd;
7  background-image:url(http://s.twimg.com/a/1282150308/images/buttons/bg-btn.gif);
8  background-position:0 0;
9  background-repeat:repeat-x;
10  border:1px solid #ddd;
11  border-bottom:1px solid #ccc;
12  color:#333;
13  cursor:pointer;
14  font-family:"Lucida Grande",sans-serif;
15  font-size:11px;
16  line-height:14px;
17  padding:4px 8px 5px 8px;
18  text-shadow:1px 1px 0 #fff;
19  vertical-align:top;
20}
21button.btn:hover {
22  border:1px solid #999;
23  border-bottom-color:#888;
24  color:#000;
25  background-color:#d5d5d5;
26  background-position:0 -6px;
27}
28button.btn:active {
29  background-image:none !important;
30  text-shadow:none !important;
31}
32     
33button.btn i {
34  background-image:url(http://s.twimg.com/a/1282150308/images/sprite-icons.png);
35  background-position:-176px -32px;
36  background-repeat:no-repeat;
37  display:inline-block;
38  height:13px;
39  margin-right:5px;
40  width:15px;
41}
42button.btn i.active  { background:url(http://s.twimg.com/a/1282150308/images/spinner.gif); }
43
44/* properties for the element that is generated *after* following */
45span.following  {  background:#ffd; padding:5px 10px; }
46span.following span { width:10px; height:9px; margin-right:5px; display:inline-block; background:url("http://s.twimg.com/a/1282150308/images/sprite-icons.png") -160px -16px no-repeat; }

首先是mootools:
* with mootools */
2window.addEvent('domready',function() {
3  /* fetch elements */
4  $$('form.follow-form').each(function(form) {
5    /* stop form event */
6    form.addEvent('submit',function(e) {
7      /* stop event */
8      if(e) e.stop();
9      /* send ajax request */
10      var i = form.getElement('i');
11      new Request({
12        url: 'twitter-follow.php',
13        method: 'post',
14        data: {
15          followID: form.getElement('input').value
16        },
17        onRequest: function() {
18          i.addClass('active');
19        },
20        onSuccess: function() {
21          var button = form.getElement('button');
22          button.setStyle('display','none');
23          new Element('span',{
24            html: '<SPAN></SPAN>Following!',
25            'class': 'following'
26          }).inject(button,'after');
27        },
28        onComplete: function() {
29          i.removeClass('active');
30        }
31      }).send();
32    });
33  });
34});

jquery的:
// Idiomatic jQuery by Doug Neiner
2jQuery(function ($) {
3  /* fetch elements and stop form event */
4  $("form.follow-form").submit(function (e) {
5    /* stop event */
6    e.preventDefault();
7    /* "on request" */
8    $(this).find('i').addClass('active');
9    /* send ajax request */
10    $.post('twitter-follow.php', {
11      followID: $(this).find('input').val()
12    }, function () {
13      /* find and hide button, create element */
14      $(e.currentTarget)
15        .find('button').hide()
16        .after('<span class="following"><span></span>Following!</span>');
17    });
18  });
19});


dojo:
/* when the DOM is ready */
2dojo.ready(function() {
3  /* fetch elements */
4  dojo.query('form.follow-form').forEach(function(form) {
5    /* stop form event */
6    dojo.connect(form,'onsubmit',function(e) {
7      /* stop event */
8      dojo.stopEvent(e);
9      /* active class */
10      dojo.query('i',form).addClass('active');
11      /* get button */
12      var button = dojo.query('button',form)[0];
13      /* ajax request */
14      dojo.xhrPost({
15        form: form,
16        load: function() {
17          dojo.style(button,'display','none');
18          dojo.create('span',{
19            innerHTML: '<SPAN></SPAN>Following',
20            className: 'following'
21          },button,'after');
22        }
23      });
24    });
25  });
26});
2
1
分享到:
评论

相关推荐

    四种时兴的框架jQuery,Mootools,Dojo,ExtJS的对比

    四种时兴的框架jQuery,Mootools,Dojo,ExtJS的对比

    四种流行的AJAX框架jQuery_Mootools_Dojo_ExtJS的对比

    ### 四种流行的AJAX框架对比分析:jQuery, Mootools, Dojo, ExtJS #### 一、jQuery **主页**: &lt;http://jquery.com/&gt; **设计思想**: - **简洁性**: 几乎所有操作都始于选择DOM元素,并对其进行操作(支持Chaining...

    四种流行的AJAX框架.doc

    本文将详细探讨四种流行的AJAX框架:jQuery、MooTools、Dojo和ExtJS。 1. **jQuery** - **简介**:jQuery是由John Resig于2006年初创建的JavaScript库,旨在简化DOM操作和AJAX通信。它适用于初级和高级开发者,...

    JavaScript libraries--->jQuery, Prototype, Mootools, YUI, Extjs, Dojo

    在给定的标题"JavaScript libraries---&gt;jQuery, Prototype, Mootools, YUI, Extjs, Dojo"中,提到了五种著名的JavaScript库:jQuery、Prototype、Mootools、YUI和ExtJS。这些库都有各自的特性和优势,下面将详细介绍...

    ASP.NET Ajax框架与组件

    #### 三、ASP.NET Ajax框架的具体组成部分 ##### 1. ASP.NET Ajax的组成 ASP.NET Ajax框架主要包括以下几个组成部分: - **AjaxLibrary类库(客户端)**:这是ASP.NET Ajax框架的核心组成部分之一,包含了用于...

    ajax十大框架

    Buffalo 是一种新型的 Ajax 框架,它通过在 JavaScript 和 HTML 元素之间建立绑定关系来实现数据双向同步。这意味着当 HTML 元素的状态发生变化时,相关的 JavaScript 代码也会自动更新。这种机制极大地简化了 Web ...

    几种流行的AJAX框架介绍pdf格式

    本文将详细介绍几种流行的AJAX框架:jQuery、Mootools、Dojo、Ext JS,并对比它们的特点,帮助开发者根据项目的具体需求选择最合适的框架。 #### 二、AJAX框架概述 AJAX框架是一种提供了一组API和工具集的软件库,...

    AJAX脚本框架选型PPT学习教案.pptx

    【标题】和【描述】提及的是一个关于AJAX脚本框架选型的学习教案,主要讨论了四个不同的JavaScript框架:Mootools、Dojo、Ext JS以及轻量级框架的选型,包括jQuery。这些框架在AJAX应用开发中各有优缺点,适用于不同...

    (jQuery,mootools,dojo)使用适合自己的编程别名命名

    以下是关于如何在jQuery、mootools和Dojo中使用编程别名的一些知识点: 1. jQuery中的别名使用: jQuery是一个非常流行的JavaScript库,它提供了一套简洁的方法来进行DOM操作和AJAX调用等。在使用jQuery时,一个...

    jQuery入门ppt

    - 作为主流的JavaScript框架之一,jQuery与其他如YUI、Dojo、mooTools、Prototype等竞争,其性能经过测试,在某些方面表现出色。 - jQuery的特点包括轻量级、链式语法、CSS选择器支持、跨浏览器兼容性、易于学习和...

    javascript 框架

    本压缩包中包含了多个流行的JavaScript框架及其使用文档,包括Dojo、Clean-AJAX 4.3、jQuery 1.3.2、MochiKit 1.4.2、MooTools 1.2.1、Prototype 1.6.0.2以及RialtoJavaScript。让我们逐一探讨这些框架的核心特点和...

    JQuery系统介绍

    与其他JS类库如Prototype、Dojo、Mootools、YUI和ExtJs相比,JQuery在关注度、应用范围以及优劣性方面均表现出色。 #### 未来展望 JQuery的未来充满了机遇。它不仅赢得了开发者的青睐,也获得了诸如微软、Google、...

    8大流行JS框架 10大新的最具潜力JS框架

    6. **Archetype JavaScript Framework**:这个框架提供了一种全新的开发模式,试图简化复杂的前端开发流程,但详细信息较少。 7. **June Framework**:June是一个轻量级的框架,专注于简单性和易用性,为开发者提供...

    第1章JQuery系统介绍.pdf

    jQuery 是一个广泛应用于Web开发的JavaScript库,它的出现极大地简化了JavaScript的使用,尤其是在处理DOM操作、事件处理、动画效果和Ajax交互等方面。本章主要介绍了jQuery的基本概念、历史、优势以及与其他...

    10大js框架 javaScript框架

    Buffalo是一个用于实现Ajax模式和Web服务调用的框架,它极大地简化了JavaScript与服务器端的交互过程。Buffalo的主要特点是Buffalo Binding,这是一种自动将JavaScript变量与HTML元素属性同步的机制,使得状态更新变...

    javascript框架介绍

    本文将详细介绍八款流行的JavaScript框架,包括Dojo、jQuery、Prototype、YUI Ext、Scriptaculous、Mochikit、Mootools、Moo.fx,分析它们的特点、优势及局限性。 #### 二、Dojo框架 Dojo被誉为当前最强大的...

    JQuery基本理论.pdf

    jQuery 与其他 JavaScript 库如 Prototype、Dojo、MooTools 和 YUI 相比,以其简洁的语法和广泛的功能集脱颖而出。虽然随着现代前端框架(如 AngularJS, React, Vue.js)的发展,jQuery 在某些场景下的应用逐渐减少...

Global site tag (gtag.js) - Google Analytics