2

我有一个页面通过 Ajax 加载一些内容,并且还通过.on()方法将事件绑定到新的 comming 元素。

无论如何要获得所有绑定事件<div class="inner">吗?加载完所有内容后,我$("div.inner").data('events')在控制台中尝试过,但除了.undefined

html:

<div id="out"><p></p></div>​

JavaScript:(不是真正的ajax,只是一个模拟)

var innDiv = '<div class="inner">inner</div>' +
'<div class="inner">inner</div>' +
'<div class="inner">inner</div>';

$(document).on('click','.inner', function(){$(this).toggleClass("green")});

setTimeout('$("#out").append(innDiv)',2000);​

这是jsfiddle 代码演示。

4

3 回答 3

4

从 jQuery 1.8 开始, $(element).data("events") 被移除。但是出于调试目的,使用$._data(element, "events")可以获取元素上的事件绑定。由于它不是公共接口,因此将来可能无法使用。

在此处查看 jQuery 发布日志。

于 2013-03-29T07:37:33.683 回答
4

由于您将事件绑定到document元素,请尝试以下操作:

$(document).data("events")
于 2012-05-03T10:55:38.050 回答
0

对不起,如果是现场活动的话,我很抱歉。

$('.target').live('click', function foo(){  });

或者

$('containerObj').on('click', 'target', function foo(){  });

您可能必须检查要绑定实时事件的对象的事件数据。

如果它在文档级别,您可能必须检查文档对象的事件或事件绑定到的目标容器。IE

从您所做的元素中删除实时附加事件。

$('containerObj').off('click', 'target', function foo(){  });

希望能帮助到你。

于 2012-05-03T10:57:02.073 回答