jq异步绑定事件方法返回值:jQuery delegate(selector,[type],[data],fn)

来源:互联网 发布:知乎2017校园招聘 编辑:程序博客网 时间:2024/06/06 11:02

delegate:用来给指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
基础用法示例如下:

$("div").delegate(".btn","click",function(){  $(".con").fadeIn();});

解释一下:我在做项目的时候,需要从后台拿出表格的数据,当我点击按钮的时候后台请求的数据才能添加到表格中,但是如果表格中也有一些按钮来查看详细情况怎么办啊,我怎么给又添加的按钮绑定事件呢?
界面如下所示:
这里写图片描述
其中,表格最右侧的详细一列也绑定了点击事件,通常我们的做法是先给查询事件绑定点击事件:

$('.btnadd').click(function(){    $('#tablebody .detail').append('<tr><td><button onclick="add()"></button></td></tr>');});function add(){    $('.con').fadeIn();}

但是如果我们不想麻烦地把每个onclick事件都添加到html文档中,那么我们就用简单的js高大上的方法,请看代码:

$('body').delegate('#tablebody .detail','click',function(){    $('.con').fadeIn();})

因为这时候的on和bind和live都绑定不上动态的是按,只有delegate才能解决,因此delegate就可以完美解决新生成的节点绑定不了事件的问题,希望大家借鉴!

1 0