`
wuzhizhemu
  • 浏览: 16300 次
社区版块
存档分类
最新评论

jquery的proxy方法的简单介绍

阅读更多
今天在代码中看到了这么一个方法$.proxy(funciton,context),然后就到jquery官网查询了一下它的用法,记载一下,加深记忆,方便将来使用查询。
下面是jquery官网的介绍:
jquery1.4版本增加的两个函数:
1)

jQuery.proxy( function, context )
function
Type: Function()
The function whose context will be changed.
context
Type: PlainObject
The object to which the context (this) of the function should be set.


2)

jQuery.proxy( context, name )
context
Type: PlainObject
The object to which the context of the function should be set.
name
Type: String
The name of the function whose context will be changed (should be a property of the context object).



上面两个函数的作用是一样的,第一个函数的两个参数分别是:function指的是要调用的函数,context传递的是function中要设定并执行用到的参数。第二个函数:第一个参数context是函数中要用到的参数,而第二个参数name是String类型并且指的是要执行的function的名称,所以跟第一个是 一样的,只是参数类型的不同。
个人认为还是第一个函数比较容易记忆,建议使用第一个参数。
然后举个例子:也是参照jquery官网的。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.proxy demo</title>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
  <p><button id="test">Test</button></p>
  <p id="log"></p>
 
<script>
var obj = {
  type: "John",
  test: function() {
    $( "#log" ).append( this.type );

    $( "#test" ).off( "click", obj.test );

  }
};
$( "#test" ).on( "click", jQuery.proxy( obj.test, obj ) );
</script>
 
</body>
</html>


在上面的代码中如果点击了test按钮后,在id="log"的p标签中就会append上john。这就是在onclick事件中我们用jquery.proxy()方法对其中的对象进行了替换,就是说实际上上面的代码的执行的实际内容是这样的:
$("#test").on("click",function(){
    $("#log").append(obj.type);
    $( "#test" ).off( "click", obj.test );
});


如果绑定事件是这样写的话

$("#test").on("click",obj.test);


那么执行的方式肯定是:
$("#test").on("click",function(){
    $("#log").append($("#test").type);
    $( "#test" ).off( "click", obj.test );
});



那么最终的结果肯定添加的就是button了。
因为第二种用法跟第一种就是变量的写法不同,这里就不再详细说明了,大家可以自己试试。
分享到:
评论

相关推荐

    jQuery权威指南-源代码

    综观现在已经出版的中文类jQuery图书,不是简单的概念性介绍,就是缺乏真正的实践指导,而且版本相对陈旧。为了让所有还没有完全掌握jQuery技术的开发者能迅速步入jQuery的殿堂,本书诞生了,相信它不会让你失望。 ...

    JQuery权威指南源代码

    第一个简单的jQuery程序 jQuery事件的链式写法 控制jQuery对象 jQuery控制CSS样式 第2章 使用JavaScript实现隔行变色 使用jQuery选择器实现隔行变色 JavaScript代码检测页面元素 jQuery代码检测页面元素 ...

    jQuery权威指南366页完整版pdf和源码打包

    前 言 第1章 jquery开发入门/1 1.1 jquery概述/2 1.1.1 认识jquery /2 1.1.2 jquery基本功能/2 1.1.3 搭建jquery开发环境/3 1.1.4 编写第一个简单的jquery应用/3 1.1.5 jquery程序的代码风格/5 1.2...

    hyper-proxy-wrapper

    快速简单的hyperProxy包装器用本地文件替换任何网站上的远程文件美丽的副项目git clone https://github.com/nicolaslabbe/hyper-proxy-wrapper.git相依性节点/ npm安装npm install跑步node dynamique.js更改您的代理...

    node.js实用爬虫

    在“node.js简单爬虫”基础上的深化版,一个实用化的爬虫,定时抓取,并存入数据库,用到更多的技术,用到的技术有: Vue.js: 前端页面展示。 Axios: vue官方推荐HTTP库,请求后端数据。 阿里巴巴的矢量图标库...

    Soundboard:一个简单HTML5音板

    音板一个简单HTML5音板。 定义一个boards.json(例如,参见boards.example) 将资产放在资产文件夹中启动index.html并享受。广播模式对于分布式设置,可以激活广播模式。 为此,必须将boards.json中的广播开关设置为...

    SignalR 2.0 and MVC 5即时通讯完整版示例

    // Reference the auto-generated proxy for the hub. var chat = $.connection.chatHub; // Create a function that the hub can call back to display messages. chat.client.addNewMessageToPage = ...

    JAVA上百实例源码以及开源项目源代码

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: 可直接...

    JAVA上百实例源码以及开源项目

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包7

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics