我有一个div,其内容可能以各种方式改变:例如,其整个内容可以通过innerHTML重新加载,或者节点可以通过DOM方法添加.这反过来可能通过本机javascript或通过调用jQuery API或通过其他库间接发生.
我希望在div的内容改变为执行一些代码,但我绝对没有控制上如何将改变.事实上,我正在设计一个可供其他人使用的小部件,他们可以按自己喜欢的方式自由更改div的内容.当此div的内部内容发生更改时,可能还必须更新窗口小部件的形状.
我正在使用jQuery.有没有办法捕获这个div的内容已经改变的事件,但它发生了吗?
我的问题有些奇怪,但我可以为任何DOM元素(div)添加事件,比如'onHtmlChange',当div改变了内容时会收到通知吗?
搜索没有透露我的问题的解决方案,所以在这里问.我一直在使用livequery()一段时间与live()结合使用.通常,我将live()用于已知事件(如click),但使用livequery触发特定选择器并应用插件.例如...
$('#childDomains').livequery(function() {
var element = $(this);
element.jqGrid({
// plugin initialization here
});
});
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法使用live()/ delegate()或其他一些我不知道的酷jQuery功能做同样的事情.我试图减轻我的依赖负载,我注意到自2010年2月至2010年以来没有更新livequery.
更新:我想我不够清楚.我有一个页面使用jqGrid并将TABLE元素转换为jqGrid Ajax数据网格.没有真正的点击事件发生这种情况.该表所在的页面是通过ajax加载的,只要DOM看到$("#childDomains"),它就应该将jqGrid插件应用于该元素.就像我的livequery示例一样.
根据我的理解,到目前为止,我不相信没有实时查询这是可能的,但我想要求确认.