jQuery版本小于1.8
On previous versions, you could call it like for other data :
obj.data('events');
jQuery大于1.8
In jQuery 1.8, this direct access was removed, so in recent versions you must call it like this :
$._data(obj[0],'events');
即小于1.8的版本使用obj.data(‘event’); 而在JQuery1.8版本取消了obj.data方法,改为$._data方法。
$._data(obj[0],”event”) 中的obj[0],一定要加上数组[0]下标,否则会取不到数据。
<script type="text/javascript">
$(function () {
$('#btnTest').click(function () {
alert('aa');
});
$('#btn').click(function () {
//判断是否绑定了click事件
var objEvt = $._data($('#btnTest')[0], 'events');
if (objEvt && objEvt['click']) {
//console.info(objEvt['click']);
alert('bind click');
} else {
alert('Not bind click');
}
});
});
</script>
<input type="button" id="btn" value="测试是否绑定事件" />
<input type="button" id="btnTest" value="被测试按钮" />
判断select是否有change方法的绑定
$('select[id^=__search__]').each(function(i,v){
var $this = $(this);
var $events= $._data($this[0],'events');
if($events && $events['change']){
alert('bind change');
}
});