delegate

jQuery的.bind()、.live()和.delegate()之间区别

北城余情 提交于 2019-12-07 12:44:48
摘要: jQuery的.bind()、.live()和.delegate()之间的区别并非总是那么明显的,然而,如果我们对所有的不同之处都有清晰的理解的话,那么这将会有助于我们编写出更加简洁的代码,以及防止在交互应用中弹出错误。 $( 'a' ).bind( 'click' , function () { alert( "That tickles!" ) });   基本要素 DOM树   首先,可视化一个HMTL文档的DOM树是很有帮助的。一个简单的HTML页面看起来就像是这个样子:   事件冒泡(又称事件传播)   当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何我们已绑定到该元素的单击事件上的函数的执行。      因此一个单击操作会触发alert函数的执行。   click事件接着会向树的根方向传播,广播到父元素,然后接着是每个祖先元素,只要是它的某个后代元素上的单击事件被触发,事件就会传给它。   在操纵DOM的语境中,document是根节点。   现在我们可以较容易地说明.bind()、.live()和.delegate()的不同之处了。 .bind() $( 'a' ).bind( 'click' , function () { alert( "That tickles!" ) });   这是最简单的绑定方法了。JQuery扫描文档找出所有的$(

GUAVA--集合(集合扩展工具类)

China☆狼群 提交于 2019-12-07 10:29:47
一、简介 有时候你需要实现自己的集合扩展。也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个 Itera ble,其底层实际上是遍历数据库查询的结果集。Guava 为你,也为我们自己提供了若干工具方法,以便让类似 的工作变得更简单。(毕竟,我们自己也要用这些工具扩展集合框架。) 二、Forwarding装饰器 针对所有类型的集合接口,Guava 都提供了 Forwarding 抽象类以简化装饰者模式的使用。 Forwarding 抽象类定义了一个抽象方法:delegate(),你可以覆盖这个方法来返回被装饰对象。所有其他方法 都会直接委托给 delegate()。例如说:ForwardingList.get(int)实际上执行了 delegate().get(int)。 通过创建 ForwardingXXX 的子类并实现 delegate()方法,可以选择性地覆盖子类的方法来增加装饰功能,而不 需要自己委托每个方法——译者注:因为所有方法都默认委托给 delegate()返回的对象,你可以只覆盖需要装饰 的方法。 此外,很多集合方法都对应一个”标准方法[standardxxx]”实现,可以用来恢复被装饰对象的默认行为,以提供 相同的优点。比如在扩展 AbstractList 或 JDK 中的其他骨架类时,可以使用类似 standardAddAll 这样的方 法。

DateTimeFormatter与SimpleDateFormat

不羁岁月 提交于 2019-12-07 08:23:59
日期格式化类:DateTimeFormatter与SimpleDateFormat 一、SimpleDateFormat类 SimpleDateFormat是用于以对语言环境敏感的方式格式化和解析日期的具体类。 SimpleDateFormat类的构造方法 NO 构造器 描述 1 SimpleDateFormat() SimpleDateFormat使用默认FORMAT语言环境的默认模式和日期格式符号 构造一个。 2 SimpleDateFormat​(Stringpattern) SimpleDateFormat使用给定的模式和默认FORMAT语言环境的默认日期格式符号 构造一个。 3 SimpleDateFormat​(Stringpattern,DateFormatSymbolsformatSymbols) SimpleDateFormat使用给定的模式和日期格式符号构造一个。 4 SimpleDateFormat​(Stringpattern,Localelocale) SimpleDateFormat使用给定语言环境和给定语言环境的默认日期格式符号构造一个。 SimpleDateFormat为什么不是线程安全的? SimpleDateFormat类的方法没有使用synchronized来给共享变量加锁。 SimpleDateFormat继承于DateFormat

DateTimeFormatter与SimpleDateFormat

徘徊边缘 提交于 2019-12-07 08:19:00
日期格式化类:DateTimeFormatter与SimpleDateFormat 一、SimpleDateFormat类 SimpleDateFormat是用于以对语言环境敏感的方式格式化和解析日期的具体类。 SimpleDateFormat类的构造方法 NO 构造器 描述 1 SimpleDateFormat() SimpleDateFormat使用默认FORMAT语言环境的默认模式和日期格式符号 构造一个。 2 SimpleDateFormat​(Stringpattern) SimpleDateFormat使用给定的模式和默认FORMAT语言环境的默认日期格式符号 构造一个。 3 SimpleDateFormat​(Stringpattern,DateFormatSymbolsformatSymbols) SimpleDateFormat使用给定的模式和日期格式符号构造一个。 4 SimpleDateFormat​(Stringpattern,Localelocale) SimpleDateFormat使用给定语言环境和给定语言环境的默认日期格式符号构造一个。 SimpleDateFormat为什么不是线程安全的? SimpleDateFormat类的方法没有使用synchronized来给共享变量加锁。 SimpleDateFormat继承于DateFormat

JQuery中的bind、delegate、on、live方法的区别及简单介绍

折月煮酒 提交于 2019-12-06 22:14:39
Bind()方法: 给元素绑定事件 形式: .bind(eventType[,eventData],handler(eventObject)) eventType,string类型,一个或多个DOM事件的名称,比如:click、submit eventData,Object,将会传递给handler函数的数据,也就是eventObject的data属性中,如果要调用那么使用eventObject.data Handler,function,当事件被触发时执行的函数 .bind(eventType[,eventData][,preventBubble]) eventType,string,一个或多个DOM事件的名称,比如:click、submit eventData,Object,将会传递给handler函数的数据,也就是eventObject的data属性中,如果要调用那么使用eventObject.data preventBubble,boolean,默认为true,当设置为false的时候将阻止浏览器默认事件发生,并且阻止事件冒泡。. .bind(events) Events,object,使用json的形式,为当前元素定义多个事件,例如: { click: function () { $( this ).addClass( "active" ); }, mouseenter:

C#委托(delegate、Action、Func、predicate)和事件

▼魔方 西西 提交于 2019-12-06 18:42:28
一、前言 刚开始工作的时候,觉得委托和事件有些神秘,而当你理解他们之后,也觉得好像没有想象中的那么难。在项目中运用委托和事件,你会发现他非常棒,这篇博文算是自己对委托和事件的一次梳理和总结。 二、委托 C#中的委托,相当于C++中的指针函数,但委托是面向对象的,是安全的,是一个特殊的类,当然他也是引用类型,委托传递的是对方法的引用。 2.1、delegate 声明委托就必须使用关键字“delegate”,委托是先声明,后实例化。至少0个参数,至多32个参数 格式如下所示: private delegate string GetAsString(); 委托是一个类,所以他的实例化跟类的实例化一样,只是他总是接受一个将委托方法作为参数的构造函数。调用委托方法就有两种方式,如下所示: int i = 10; var method = new GetAsString(i.ToString); //调用方法一 Console.WriteLine($"method方法{method()}"); //调用方法二 Console.WriteLine($"method.Invoke方法{method.Invoke()}"); 运行结果: 2.2、Action Action是无返回值的泛型委托,可以接受0个至16个传入参数 Action 表示无参,无返回值的委托 Action<int,string>

GUAVA--集合(集合扩展工具类)

岁酱吖の 提交于 2019-12-06 18:36:27
一、简介 有时候你需要实现自己的集合扩展。也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个 Itera ble,其底层实际上是遍历数据库查询的结果集。Guava 为你,也为我们自己提供了若干工具方法,以便让类似 的工作变得更简单。(毕竟,我们自己也要用这些工具扩展集合框架。) 二、Forwarding装饰器 针对所有类型的集合接口,Guava 都提供了 Forwarding 抽象类以简化装饰者模式的使用。 Forwarding 抽象类定义了一个抽象方法:delegate(),你可以覆盖这个方法来返回被装饰对象。所有其他方法 都会直接委托给 delegate()。例如说:ForwardingList.get(int)实际上执行了 delegate().get(int)。 通过创建 ForwardingXXX 的子类并实现 delegate()方法,可以选择性地覆盖子类的方法来增加装饰功能,而不 需要自己委托每个方法——译者注:因为所有方法都默认委托给 delegate()返回的对象,你可以只覆盖需要装饰 的方法。 此外,很多集合方法都对应一个”标准方法[standardxxx]”实现,可以用来恢复被装饰对象的默认行为,以提供 相同的优点。比如在扩展 AbstractList 或 JDK 中的其他骨架类时,可以使用类似 standardAddAll 这样的方 法。

DateTimeFormatter与SimpleDateFormat

♀尐吖头ヾ 提交于 2019-12-06 16:52:10
日期格式化类:DateTimeFormatter与SimpleDateFormat 一、SimpleDateFormat类 SimpleDateFormat是用于以对语言环境敏感的方式格式化和解析日期的具体类。 SimpleDateFormat类的构造方法 NO 构造器 描述 1 SimpleDateFormat() SimpleDateFormat使用默认FORMAT语言环境的默认模式和日期格式符号 构造一个。 2 SimpleDateFormat​(Stringpattern) SimpleDateFormat使用给定的模式和默认FORMAT语言环境的默认日期格式符号 构造一个。 3 SimpleDateFormat​(Stringpattern,DateFormatSymbolsformatSymbols) SimpleDateFormat使用给定的模式和日期格式符号构造一个。 4 SimpleDateFormat​(Stringpattern,Localelocale) SimpleDateFormat使用给定语言环境和给定语言环境的默认日期格式符号构造一个。 SimpleDateFormat为什么不是线程安全的? SimpleDateFormat类的方法没有使用synchronized来给共享变量加锁。 SimpleDateFormat继承于DateFormat

C#基础提升系列——C#委托

荒凉一梦 提交于 2019-12-06 13:55:15
C# 委托 委托是类型安全的类,它定义了返回类型和参数的类型,委托类可以包含一个或多个方法的引用。可以使用lambda表达式实现参数是委托类型的方法。 委托 当需要把一个方法作为参数传递给另一个方法时,就需要使用委托。委托是一种特殊类型的对象,其特殊之处在于,我们以前定义的所有对象都包含数据,而委托包含的只是一个或多个方法的地址。 声明委托类型 声明委托类型就是告诉编译器,这种类型的委托表示的是哪种类型的方法。语法如下: delegate void delegateTypeName[<T>]([参数列表]); 声明委托类型时指定的参数,就是该委托类型引用的方法对应的参数。 //声明一个委托类型 private delegate void IntMethodInvoker(int x); //该委托表示的方法有两个long型参数,返回类型为double protected delegate double TwoLongsOp(double first, double second); //方法不带参数的委托,返回string public delegate string GetString(); public delegate int Comparison<in T>(T left, T right); (注:我们把上述定义的 Comparison<in T> 、

委托-匿名方法

白昼怎懂夜的黑 提交于 2019-12-06 12:27:06
一,无参数无返回 namespace 委托 { class Program { public delegate void Method(); static void Main(string[] args) { Method method = delegate () { Console.WriteLine("----无参数返回----"); }; //使用方法 method(); Console.Read(); } } } 二,无参数有返回 namespace 委托 { class Program { public delegate void Method(int a); static void Main(string[] args) { Method method = delegate (int a) { Console.WriteLine($"{a}"); }; //使用方法 method(10); Console.Read(); } } } 三,有参数有返回 namespace 委托 { class Program { public delegate int Method(int a); static void Main(string[] args) { Method method = delegate (int a) { return a; }; //使用方法 int