jQuery-事件绑定与事件委托

jQuery中给DOM元素添加事件处理程序常用的方式:

$("#id").bind("click",function(){});

$("#id").click(function(){});

其中第一种方式如果目标Element元素在bind事件完成时不在DOM中,也就是说在bind事件完成后添加的DOM元素,则无法自动绑定事件

如果要实现自动绑定需要将bind方法替换为live方法(两个方法用法相同)

即$("#id").live("click",function(){});

附:绑定与解除

bind()->unbind()

live()->die()

例如:

$("#id").bind("click",function(){});

$("#id").unbind("click");

$("#id").live("click",function(){});

$("#id").die();

$("#id").die("click");

$("#id").die("click",function(){});

需要注意的是两个方法对应的解除绑定方法仅解除各自相应的绑定

特别的一种事件绑定方式是事件委托(或称事件代理)

写法一

$("#id").click($.proxy(context,funName);

写法二

$("#id").click($.proxy(function,context);

参数说明:

function:函数

context::定义了function属性的对象

funName:函数名称

实例:

varcontext={

elementClicked:function(){

alert("Clicked");

}

}

$("#id").click($.proxy(context,"elementClicked");//第一种写法

$("#id").click($.proxy(context.elementClicked,context);//第二种写法

//只要改变context的elementClicked属性即可改变相应事件处理程序的调用

相关推荐