1.这是我的代码,我有一个div类内部,使用ajax调用动态加载 并且在ajax调用之后,如果我单击隐藏按钮则无法正常工作。
但它在ajax请求之前完成了工作。
所以为了克服我只是添加一个外部div并隐藏div这次它工作.. 我不知道为什么?
$( "#inner" ).replaceWith( data ); /*and*/ $( "#inner" ).hide(); //not working
$( "#inner" ).replaceWith( data ); /*and*/ $( "#outer" ).hide(); //working
为什么我们不能使用相同的div类?
<html>
<div id="outer">
<div id="inner">
<br /> <br /> <br />
<div> <input type="button" value="signup" onclick="changeval();"/>
</div>
<br /> <br />
</div>
</div>
<input type="button" value="hide" onclick="onhide();"/>
<script language="javascript">
function changeval(context)
{
var typeval="sdsf";
var url="sdfsdf";
$.ajax({
type:'POST',
url:'htp://sscs/registration',
data:'&typeval='+typeval+'&url='+url,
success:function(data) {
$( "#inner" ).replaceWith( data );
}
});
}
function onhide()
{
$( "#inner" ).hide();
}
</script>
答案 0 :(得分:1)
使用.html()
$("#inner").html(data);
用提供的新内容替换匹配元素集中的每个元素,并返回已删除的元素集。
DEMO of replaceWith,在这里你可以看到第二类的div被输入内容替换。
答案 1 :(得分:1)
它不起作用,因为您替换了<div id="inner">
。
包括div及其ID。 <div id="outer">
仍然存在,因此您的其他隐藏有效,它仍会找到div
。
答案 2 :(得分:0)
像这样使用:
$( "#inner" ).replaceWith( function(){
return $(this).data();
} );
答案 3 :(得分:0)
在你的ajax调用之后,#inner-div不再存在了。您正在使用ajax请求的响应替换它。
您可以使用$("#inner").html(data);
来保留div,然后在收到回复后隐藏它。