例如:

<h2>Great Web resources</h2>

<ul id="resources">

  <li><a href="http://opera.com/wsc">Opera Web Standards

Curriculum</a></li>

  <li><a href="http://sitepoint.com">Sitepoint</a></li>

  <li><a href="http://alistapart.com">A List Apart</a></li>

  <li><a href="http://yuiblog.com">YUI Blog</a></li>

  <li><a href="http://blameitonthevoices.com">Blame it on the

voices</a></li>

  <li><a href="http://oddlyspecific.com">Oddly specific</a></li>

</ul>

最佳脚本书写方式:

原生js实现:

(function(){

  var resources = document.getElementById('resources');

  resources.addEventListener('click',handler,false);

  function handler(e){

    var x = e.target; // get the link tha

    if(x.nodeName.toLowerCase() === 'a'){

      alert('Event delegation:' + x);

      e.preventDefault();

    }

  };

})();

jQ实现:

 //给列表绑定跳转链接
bindJumpUrl: function(el){
var self = this;
el.on('click', 'a' , function(e) {
e.preventDefault();
e.stopPropagation();
var href = $(this).attr("href");
self.gotoActivityPage(href);
});
}

遇到的一点小问题

var submitGoods = function(){
console.log(this);//btn1,这是事件处理函数
//这里就得不到window的this了。。只能传参传self。当然了,我们不用这种写法
}
$("#btn1").on("click",self,self.submitGoods);
var a = 1;
var self = this;
var getProductInfo = function(e, arg){
console.log(this);//window,这样window上的方法我们这里就可以用了
console.log(e);//j…y.Event
console.log(a);//
console.log(arg);//要传到事件处理函数的参数
};
$("#btn1").on('click',function(e){
console.log(this);//btn1,这是事件处理函数,这个函数的this是被点击的对象
var arg = "要传到事件处理函数的参数";
self.getProductInfo(e, arg);
})//所以说这种方法是完美的

事件委托&jQuery on的更多相关文章

  1. js事件委托 jQuery写法

    http://www.cnblogs.com/liugang-vip/p/5616484.html 不是抄的,这篇文章写的细 这是js 事件委托写法 <!DOCTYPE html> < ...

  2. Jquery事件委托之Safari

    什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数. //常见的事件绑定(Jquery) ...

  3. JS与Jquery的事件委托——解决了绑定相同事件的问题

    概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完 ...

  4. JS与Jquery的事件委托

    参考:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委 ...

  5. jQuery事件委托之Safari失效的解决办法--摘抄

    什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数. //常见的事件绑定(Jquery) ...

  6. JS与Jquery的事件委托机制

    传送:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委 ...

  7. jQuey事件委托

    javascript的事件模型,采用"冒泡"模式,子元素的事件会逐级向上"冒泡",成为父元素的事件. 在需要为较多的元素绑定事件时应该使用事件委托 event ...

  8. JavaScript 事件委托详解

    基本概念 事件委托,通俗地来讲,就是把一个元素响应事件(click.keydown......)的函数委托到另一个元素: 一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事 ...

  9. 简单说 JavaScript中的事件委托(下)

    说明 上次我们说了一些,关于 JavaScript中事件委托的 基础知识,这次我们继续来看. 解释 先来一段代码 <!doctype html> <html lang="e ...

随机推荐

  1. 虚拟机下Linux系统安装vmtool工具

    1.启动此虚拟机2.用超级用户root登录3.登录成功后,Ctrl+Alt ,取出鼠标,点选菜单栏,虚拟机 →安装VMware工具 → Install4.待虚拟系统挂载了光盘后,弹出cdrom文件夹或 ...

  2. DOJO 如何清空表单

          在Dojo里,清空表单非常简单 在设置好了相关的环境之后,只要设置dom.byId('formid').reset(); / dijit.byId('formid').reset; Jqu ...

  3. jQuery和CSS 3定制HTML 5视频播放器

    目前,随着越来越多的浏览器开始支持更多的HTML5新特性,开发者也逐渐关注HTML5的开发.在众多HTML5的新特性中,视频方面的新特性是 很值得开发者和用户关注的.现在,只需要有支持HTML5的浏览 ...

  4. ubuntu 查看系统版本信息

    查看cpu信息cat /proc/cpiinfo 查看ubuntu版本:cat /etc/issue 查看系统是32位还是64位方法1:#查看long的位数,返回32或64 getconf LONG_ ...

  5. The Network Adapter could not establish the connection解决办法

    用 oracle net manager 将监听改为IP地址,将服务命名也改为IP地址,然后数据库连接改为IP地址方式不要用localhost

  6. 嵌入式 arm平台ping域名指定ip小结

    在fs的目录/etc/下添加文件hosts,然后内容修改如下: 192.168.11.12 qycam.com ping qycam.com 解析为192.168.11.12

  7. c# is和as的区别

    关于类型的判断和转换有is和as这2个操作符.具体区别和用法如下is就是处于对类型的判断.返回true和false.如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false ...

  8. git/github初级运用自如(zz)

    ----//git/github环境配置 一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...

  9. poj 3270(置换群)

    题意:给定n头母牛的脾气大小,然后让你通过交换任意两头母牛的位置使得最后的母牛序列的脾气值从小到大,交换两头母牛的代价是两个脾气之和,使得代价最小. 分析:以前做过一道题,只有一个地方和这道题不同,但 ...

  10. T-SQL:SQL Server-数据开发(经典)

    ylbtech-SQL Server-Doc-Help:SQL Server-数据开发(经典) SQL Server 数据开发(经典). 1,数据开发(经典) 返回顶部 1.按姓氏笔画排序: Sele ...