在1.8.0版本之前,我們要想獲取某個DOM綁定的事件處理程序可以這樣:
1 |
$.data(domObj,'events');//或者$('selector').data('events') |
而從1.8.0版本開始,jQuery突然不支持這樣使用了,而是改到了一個叫'_data'的函數功能上了,即,1.8.0及以后的版本你可以這么用:
1 |
$._data(domObj,'events');//注意,這里不能像$('selector')._data('events')這樣用了。 |
要想寫出兼容兼容各個jQuery版本的方式,這樣獲取即可:
var eventsData = $.data(domObj,'events') || $._data(domObj,'events');//這個改變在easyui 1.3.1的源碼中也有體
ps:
1.接受的domObj節點必須為dom節點對象,不能為jquery對象,如果是獲取的jquery對象,要用get(0)或者[0]轉為dom對象
2.只能獲取到使用jquery方法綁定的參數 on ,live 等。如果是直接寫到元素上的事件是不能獲取的,使用其他非jquery設置的事件也是無法獲取的