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;
下面是這個方法的測試頁面:
<span style="font-size:18px;"><%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE HTML> <html> <head> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>測試jquery動態改變事件</title> <script type="text/javascript" src="/static/lib/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="/static/lib/jquery.cookie.min.js"></script> <script type="text/javascript" src="/static/lib/util.min.js"></script> <script type="text/javascript" src="/static/lib/jquery.bgiframe.min.js"></script> <script type="text/javascript" src="/static/lib/jshashtable.min.js"></script> </head> <body> <h1>該demo用於測試jquery附加了事件以後可不可以動態改變事件有無,及順序</h1> <input id="btn" type="button" value="點擊我執行事件,分別執行三個次序彈窗"/><br/> <input id="btn_clear" type="button" value="點擊清空執行事件,清空後第一個按鈕無反應"/><br/> <input id="btn_revert" type="button" value="點擊還原執行事件,點擊後第一個按鈕又會有反應"/><br/> <input id="btn_seq" type="button" value="點擊我改變執行事件順序,順序會改變"/><br/> <script type="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>