JS框架使用及迁移(二)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 04:34 点击:

B、方法部分
1、方法调用
Prototype:

Javascript代码 
$$('.class').invoke('show'); 
Element.show($("id")); 


$("id").invoke("show") 是会出错的,因为$("id") 是 HTML 元素对象,并无 invoke 方法。

jQuery:
Javascript代码 
$j("#id").show(); 
$j(".class").show(); 


2、迭代:
Prototype:
Javascript代码 
[ 'hello', 'world'].each(function(s, index) { 
  alert(index + ': ' + s); 
}); 

可见javascript 的数组对象被扩展,加入了迭代功能。

jQuery:
Javascript代码 
$j([ 'hello', 'world']).each(function(s) { 
  alert(s+":"+this); 
}); 

包装成 jQuery 对象,然后操作,这里值得注意的是,在回调函数中,this 被赋值为当前元素。

3、事件监听
jQuery 相比 Prototype 一个很好的地方,就是 ready() 事件。
Javascript代码 
$j(document).ready(function(){}); // 或者 
 
$j(function(){}); 


而 Prototype 早期只能通过
Javascript代码 
Event.observe(window,'load',function(){}) 

后来提供了:
Javascript代码 
document.observe("contentloaded", function() {}) 

现在改为:
Javascript代码 
document.observe('dom:loaded',function(){}) 

值得注意的是,这些方法可以多次调用。并且在事件触发后,能按调用先后的程序执行相关代码。
像 BOM 本身的 window.onload 事件,如果多次赋值,会被覆盖。
Javascript代码 
function out1() 

    console.log("output 1"); 

function out2() 

    console.log("output 2"); 

window.onload = out1; 
window.onload = out2; 

以上代码,只会输出 "output 2",而以下两段代码都会依次输出 "output 3 "、"output 4":
Prototype:
Javascript代码 
document.observe('dom:loaded',function(){ 
    console.log("output 3"); 
}); 
document.observe('dom:loaded',function(){ 
    console.log("output 4"); 
}); 

jQuery:
Javascript代码 
$j(function() { 
    console.log("output 3"); 
 
}); 
 
$j(function() { 
    console.log("output 4"); 
 
}); 

Prototype:
Javascript代码 
Event.observe('btnok', 'click', btnHandler); 

或者
Javascript代码 
$('btnok').observe('click', btnHandler); 

值得注意的是,对于同一个元素的同一个事件,注册同一个 handler ,Prototype 只注册一次。

也就是说,如下两次调用 observe 注册
Prototype
Javascript代码 
function btnHandler() 

    console.log("btn clicked!"); 

Event.observe('btnok', 'click', btnHandler); 
$('btnok').observe('click', btnHandler); 

但是对于同一个元素、同一个事件,用不同的 handler ,可以注册多次。
Javascript代码 
function btnHandler() 

    console.log("btn clicked!"); 

function btnHandler1() 

    console.log("btn clicked  1!"); 

Event.observe('btnok', 'click', btnHandler); 
$('btnok').observe('click', btnHandler1);&

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Gb2312转utf-8编码的方法(vbs+js)
      • 如何使用Ajax技术开发Web应用程序(1)
      • js跳转路径问题
      • JavaScript模仿桌面窗口
      • 用js检测两个线段是否相交
      • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
      • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
      • 我是如何去了解jquery的(六),案例之幻灯片轮换
      • Jquery封装幻灯片效果
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1