我是jquery
的新用户,我试图隐藏某些div
元素,然后在Ajax
电话成功时显示它们。
加载页面时,浏览器会隐藏div
元素,在Ajax
成功显示元素,但浏览器再次隐藏div
元素。
代码
<script>
$(document).ready(function() {
$('#sidebar-container').hide(1000);
$('#overall-status').hide(1000);
$('#submit-date').click(function() {
var processDate = $('#processDate').val();
alert(processDate);
$.ajax({
type : "POST",
url : "launchapptest",
data : processDate,
dataType : "json",
success : function(result) {
alert("Success");
$('#sidebar-container').css({
visibility : "visible"
});
$('#overall-status').css({
visibility : "visible"
});
}
});
}
);
});
</script>
&#13;
请帮助我了解正在发生的事情以及如何避免这种情况。
答案 0 :(得分:4)
使用jquery Show
事件。
$(document).ready(function() {
$('#sidebar-container').hide(1000);
$('#overall-status').hide(1000);
$('#submit-date').click(function() {
var processDate = $('#processDate').val();
alert(processDate);
$.ajax({
type : "POST",
url : "launchapptest",
data : processDate,
dataType : "json",
success : function(result) {
alert("Success");
$('#sidebar-container').show();
$('#overall-status').show();
}
});
}
);
});
答案 1 :(得分:3)
问题解决了,我创建了一个表单提交按钮来启动Ajax调用。 将其更改为普通输入按钮。 因为这个页面正在重新加载。
我将提交按钮更改为输入按钮,以解决此问题。
非常感谢所有的帮助。
答案 2 :(得分:2)
.hide()
将样式设置为display:none
。您需要致电.show()
,而不是.css({visibility:'visible'});
答案 3 :(得分:2)
您必须首先停止每个元素的当前动画队列(因为非动画CSS更改不会添加到该队列):
另外,正如其他地方所提到的,show()
是将visibility
作为隐藏集display: none
而不是visibility
的更好选择。
success : function(result) {
alert("Success");
$('#sidebar-container').stop().show();
$('#overall-status').stop().show();
}
此外,您可能无法停止提交表单,因此页面将重新加载并重新隐藏div。尝试停止该按钮的默认行为。
$('#submit-date').click(function(e) {
e.preventdefault()