今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。
看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。
那?怎麼查呢?如何列出所有bind的event?
回覆刪除感謝 wangaguo提醒,的確可以知道bind哪些event.
回覆刪除列出程式如下:
var elemId = "xxxId";
var elemData = jQuery._data($('#'+elemId )[0]);
var eventList = "";
for(var e in elemData.events){
eventList += (e + "\n");
}
alert(eventList);
http://wadevelop.blogspot.com/2011/08/jquery-jquerylibraryeventbindbinddebug.html
回覆刪除寫法不同的方法,以及其它~
var e = $.data($("#test").get(0), 'events');
for(var p in e) alert(p);