jquery用data方法获取某个元素上的事件
jquery的给元素绑定的事件可以用data方法取出来
通过$(element).data("events")来获取
//比如给一个button绑定两个click事件 $("button").click(function(){alert("1")}); $("button").click(function(){alert("2")}); //这个时候点击该button会分别弹出2和1的alert框 //取出该button的所有click事件,是个数组
$("button").data('events').click
会看到两个click事件的数组
得到该数组,你可以调整顺序后再设回去
$("button").data('events').click=newEventArray;
下面是这个方法的测试页面:
<spanstyle="font-size:18px;"><%@pagecontentType="text/html;charset=UTF-8"language="java"%> <!DOCTYPEHTML> <html> <head> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>测试jquery动态改变事件</title> <scripttype="text/javascript"src="/static/lib/jquery-1.6.2.min.js"></script> <scripttype="text/javascript"src="/static/lib/jquery.cookie.min.js"></script> <scripttype="text/javascript"src="/static/lib/util.min.js"></script> <scripttype="text/javascript"src="/static/lib/jquery.bgiframe.min.js"></script> <scripttype="text/javascript"src="/static/lib/jshashtable.min.js"></script> </head> <body> <h1>该demo用于测试jquery附加了事件以后可不可以动态改变事件有无,及顺序</h1> <inputid="btn"type="button"value="点击我执行事件,分别执行三个次序弹窗"/><br/> <inputid="btn_clear"type="button"value="点击清空执行事件,清空后第一个按钮无反应"/><br/> <inputid="btn_revert"type="button"value="点击还原执行事件,点击后第一个按钮又会有反应"/><br/> <inputid="btn_seq"type="button"value="点击我改变执行事件顺序,顺序会改变"/><br/> <scripttype="text/javascript"> $(document).ready(function(){ $("#btn").click(function(){ alert(1); }); $("#btn").click(function(){ alert(2); }); $("#btn").click(function(){ alert(3); }); var_arr_events=$("#btn").data("events")["click"]; $("#btn_clear").click(function(){ $("#btn").data("events")["click"]=undefined; }); $("#btn_revert").click(function(){ $("#btn").data("events")["click"]=_arr_events; }); }); </script> </body> </html> </span>