我们正在使用JQuery 1.4.4,由于某些原因,尚无法升级。
我需要获取一个元素的所有事件处理程序,以便可以取消绑定它们并在以后重新绑定它们。像这样的东西:
var event_handlers = obtainAllEvenHandlers($('#elem'));
$('#elem').unbind();
...
// Do many things
...
...
for(...) { // Or $.each(event_handlers, ...function() {
// Note 1: How to obtain the event handler?
var event_handler = getEventHandler($(this)); // Or just $(this)?
// Note 2: How to obtain the event from event handler? To know if blur, click, etc
var e = getEventFromEventHandler($(this));
$('#elem').bind(e, event_handler);
}
另外,如何e
从事件处理程序中了解事件以将其绑定回去?请参阅注释1和注释2。
$('#elem').bind(e, event_handler);
如果您需要更多信息,请在评论中让我知道。
试试这个 :-
jQuery('#elem').data( "events" );
的结果$('..').data('..')
将是一个包含事件的对象。
或(因为您使用的是旧版的jQuery),请尝试以下操作:
$.each($("#elem").data("events"), function(i, event) {
alert(i);
$.each(event, function(j, h) {
alert(h.handler);
});
});
为了绑定事件返回使用.bind()
,如下所示:
$('#elem').bind('eventname',function(){
// ... code
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句