jQuery trace event

  • 4617
  • 0

摘要:jQuery trace event

如果按照標準把 javascript跟 html分離,應該會遇到找不到事件的問題!原本把事件寫在 <input ... onclick="fn(this"...>的話,很容易就可以從 html裡找到 javascript做了哪些事,一旦分開,就要多花一點時間…如果 js檔愈拆愈多,愈分愈細,這個問題會更棘手,還沒找到很好的解決辦法,大概只能透過制定規範吧。

不過,如果只是要看「javascript程式碼+有用 jQuery」,在這兩個前提之下,可以參考這個連結:http://stackoverflow.com/questions/570960/how-to-debug-javascript-jquery-event-bindings-with-firebug-or-similar-tool

簡單摘要:jQuery在綁事件的時候,會用 $.data("events")把 function存起來。


$("*").each(function(){
	var eventObjects = $(this).data("events");
	if(eventObjects){
		console.log(this.id, this.tagName);
		$.each(eventObjects, function(eventName, obj){
			$.each(obj,function(idx, handler){
				console.log(eventName, handler.handler);
			});
		});
		console.log("=================");
	}
});
// 之前沒拉到下面看,自己刻了一段…留作紀念XD

如果要找到 code在哪個檔案、哪一行,還要再想想怎麼辦。