Javascript 如果删除并重新添加同一个div,jQuery是否无法找到它?
我试图将不同的内容加载到一个div中,我的刷新代码与此非常相似:但更复杂,它需要考虑填充和magin等 不同之处在于,在我的实际代码中,我使用.load()将内容馈送到我的div中,而不是使用empty()和append() 当我的页面第一次加载时,我调用我的resizeContainer()函数来动态呈现我的布局设置div的大小,一切看起来都很好。我看了firebug,这就是我得到的(所有尺寸都在那里,由我的函数设置): 但是,如果我只需单击两次以将其切换回原始内容,则我的resizeContainer函数将不会渲染任何内容 在过去的5个多小时里,我一直在努力解决这个问题,我尝试使用:Javascript 如果删除并重新添加同一个div,jQuery是否无法找到它?,javascript,jquery,html,Javascript,Jquery,Html,我试图将不同的内容加载到一个div中,我的刷新代码与此非常相似:但更复杂,它需要考虑填充和magin等 不同之处在于,在我的实际代码中,我使用.load()将内容馈送到我的div中,而不是使用empty()和append() 当我的页面第一次加载时,我调用我的resizeContainer()函数来动态呈现我的布局设置div的大小,一切看起来都很好。我看了firebug,这就是我得到的(所有尺寸都在那里,由我的函数设置): 但是,如果我只需单击两次以将其切换回原始内容,则我的resizeCont
- 空,追加
- 分离
- 以多种不同的方式调用resize函数
- 以多种不同的方式调用自定义resizeContainer函数
- 将以上所有内容和更多内容结合起来
<div id="divWrapper" class="fullscreen">
<div id="divTop" class="Top " style="height: 0px;"> </div>
<div id="divContainer" class="Container round" style="width: 1024px; height: 560px;">
<div id="divContent" class="Content round" onclick="javascript: jQfn.testclick();"> Content </div>
<div id="divQuery" class="Query round" onclick="javascript: jQfn.testclick();"> Query </div>
<div id="divStatus" class="Status " onclick="javascript: jQfn.testclick();" style="width: 701px; float: left;"> Status </div>
</div>
</div>
有什么不对劲吗?在加载新内容之前,我甚至尝试手动分离这些div。Load是一种Ajax方法,在使用Ajax方法而不是append方法时,从外部文件插入内容。在大多数情况下,您必须使用jQuery的live();以获得对插入的DOM元素的访问权
使用Ajax第一次插入内容后,请尝试使用detach和一个append方法(而不是Ajax)重新插入内容,否则它将不起作用,因为load只是重新插入新的DOM元素,而不是刚刚分离的内容。+1,另外,您还可以使用.delegate()而不是.live()特别是如果事件传播的效率或管理对应用程序很重要的话。我试过使用.live(),看起来它不是重新插入到DOM中了吗<代码>代码jQ('#divContainer').load('busy.jsp');jQ(“#divContent”).live('resize',jQfn.resizeContent);log(jQ(“#divContent”);jQfn.resizeContent=function(){alert('helloworld');}代码>它仍然无法正确抓取div。
jQfn.testclick = function(){
if (jQ.busy == true) {
console.log('Using busy.jsp');
jQ('#divContainer').load('busy.jsp');
jQ.busy = false;
} else {
console.log('Using login.jsp');
jQ('#divContainer').load('login.jsp');
jQ.busy = true;
}
jQ(window).trigger('resize');
}
<div id="divWrapper" class="fullscreen">
<div id="divTop" class="Top " style="height: 0px;"> </div>
<div id="divContainer" class="Container round" style="width: 1024px; height: 560px;">
<div id="divContent" class="Content round" onclick="javascript: jQfn.testclick();"> Content </div>
<div id="divQuery" class="Query round" onclick="javascript: jQfn.testclick();"> Query </div>
<div id="divStatus" class="Status " onclick="javascript: jQfn.testclick();" style="width: 701px; float: left;"> Status </div>
</div>
</div>
var content = jQuery('#divContent');
console.log(content);