发布于 2015-08-12 15:58:13 | 1703 次阅读 | 评论: 0 | 来源: 网络整理

事件处理

目录:

 

$.Event

$.Event(type, [properties]) ⇒ event

创建并初始化一个指定的dom事件。如果properties参数给出,使用它来扩展出新的事件对象。默认情况下,事件被设置为冒泡方式;这个可以通过设置bubblesfalse来关闭。

初始化的功能可以使用 trigger来触发。

$.Event('mylib:change', { bubbles: false });
    
 

$.proxy v1.0+

$.proxy(fn, context) ⇒ function
      $.proxy(context, property) ⇒ function
  

接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文语境,新函数中this指向context参数。另外一种形式,原始的function是context对像的方法。

var obj = {name: 'Zepto'},
        handler = function(){ console.log("hello from + ", this.name) }

        // ensures that the handler will be executed in the context of `obj`:
        $(document).on('click', $.proxy(handler, obj));

var obj = {name: "yaotaiyang",
		test: function() {
			alert( this.name );      
			$("#test").unbind("click", obj.test); 
		}
		};    
$("#test").click( jQuery.proxy( obj, "test" ));
    
 

bind

Deprecated, use on instead.

bind(type, function(e){ ... }) ⇒ self
      bind({ type: handler, type2: handler2, ... }) ⇒ self
  

为一个元素绑定一个处理事件。

 

delegate

Deprecated, use on instead.

delegate(selector, type, function(e){ ... }) ⇒ self
      delegate(selector, { type: handler, type2: handler2, ... }) ⇒ self
  

基于一组特定的根元素为所有选择器匹配的元素附加一个处理事件,匹配的元素可能现在或将来才创建。

 

die

Deprecated, use off instead.

die(type, function(e){ ... }) ⇒ self
      die({ type: handler, type2: handler2, ... }) ⇒ self
  

删除通过 live 添加的事件。

 

live

Deprecated, use on instead.

live(type, function(e){ ... }) ⇒ self
      live({ type: handler, type2: handler2, ... }) ⇒ self

类似delegate,其中selector参数为当前Zepto集合对象。

 
 

off

off(type, [selector], function(e){ ... }) ⇒ self
      off({ type: handler, type2: handler2, ... }, [selector]) ⇒ self
      off(type, [selector]) ⇒ self
      off() ⇒ self
  

移除通过 on 注册的事件(用bind或者用on注册的事件)。如果没有参数,将移出当前元素上所有的注册事件。

off(type, [selector], function(e){ ... }) ⇒ self

如果selector存在,则相当于delegate。
$("ul").on("click","li",function(){alert("yaotaiyang")});
以上代码相当于将li的事件代理到ul上。后续添加的li也能拥有以上方法。该事件可以通过undelegate来移除。
$("ul").undelegate();
也可用:$("ul").off();

如果selector参数不存在。则相当于bind。
$("li").on("click",function(){alert("yaotaiyang")});
该事件可以通过unbind来移除。
$("li").unbind("click");
也可以用off()来移除:$("li").off();

on方法继集成bind和delegate方法。
 
 

on

on(type, [selector], function(e){ ... }) ⇒ self
      on({ type: handler, type2: handler2, ... }, [selector]) ⇒ self
  

添加事件到Zepto对象集合上。多个事件可以通过空格的字符串方式添加。或者以事件类型、函数对象的 方式。如果css选择器给出,事件的对象满足选择器条件时。事件才会被触发。

事件处理程序在触发事件元素或者css选择器匹配的元素的上下文中执行(this指向触发事件的元素)。

当事件处理程序返回false, 或调用preventDefault(),浏览器的默认事件将会被阻止。

var elem = $('#content')
        // observe all clicks inside #content:
        elem.on('click', function(e){ ... })
        // observe clicks inside navigation links in #content
        elem.on('click', 'nav a', function(e){ ... })
        // all clicks inside links in the document
        $(document).on('click', 'a', function(e){ ... })
    
on(type, [selector], function(e){ ... }) ⇒ self

如果selector存在,则相当于delegate。
$("ul").on("click","li",function(){alert("yaotaiyang")});
以上代码相当于将li的事件代理到ul上。后续添加的li也能拥有以上方法。该事件可以通过undelegate来移除。
$("ul").undelegate();
也可用:$("ul").off();

如果selector参数不存在。则相当于bind。
$("li").on("click",function(){alert("yaotaiyang")});
该事件可以通过unbind来移除。
$("li").unbind("click");
也可以用off()来移除:$("li").off();

on方法继集成bind和delegate方法。
 

one

one(type, function(e){ ... }) ⇒ self
      one({ type: handler, type2: handler2, ... }) ⇒ self
  

添加一个处理事件到元素。处理函数在每个元素上最多执行一次。

 
 

trigger

trigger(event, [data])
  

在Zepto对象集合的元素上触发指定的事件。事件可以是一个字符串,也可以是一个 $.Event 对象。如果data参数存在,它会作为参数传递给事件函数。

// add a handler for a custom event
        $(document).on('mylib:change', function(e, from, to){
        console.log('change on %o with data %s, %s', e.target, from, to)
        })
        // trigger the custom event
        $(document.body).trigger('mylib:change', ['one', 'two'])
    

Zepto仅仅支持在dom元素上触发事件。

 

triggerHandler

triggerHandler(event, [data]) ⇒ self

trigger,它只触发事件,但不冒泡。

比如你再一个input上如果使用该方法。

		$("input").triggerHandler('focus');
        // 此时input上的focus事件触发,但是input不会聚焦
		$("input").trigger('focus');
        // 此时input上的focus事件触发,input聚焦
 
 

unbind

Deprecated, use off instead.

unbind(type, function(e){ ... }) ⇒ self
      unbind({ type: handler, type2: handler2, ... }) ⇒ self
  

移除通过 bind 注册的事件。

 

undelegate

Deprecated, use off instead.

undelegate(selector, type, function(e){ ... }) ⇒ self
      undelegate(selector, { type: handler, type2: handler2, ... }) ⇒ self

移除通过delegate 注册的事件。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务