【问题标题】:Cannot scroll after ajax callajax调用后无法滚动
【发布时间】:2015-05-24 19:30:37
【问题描述】:

我正面临进行 ajax 调用的情况,该调用填充了一个长达 2 个网页的 DIV。但是除非我调整窗口大小,否则我无法滚动。 如何告诉浏览器重新计算页面内容的大小以便添加滚动条? 谢谢!

好的,代码如下: 如您所见,我正在尝试使用 $("#main-content").css({ height:"100vh" });,但它不起作用。

function showParticipants(){
	
	if($('#action').val() != 0){
	   $.ajax('participants.php', {
		  beforeSend: function(){
			modal();
		  },
		  success: function(data) {
			$('#showParticipantsContainer').html(data);
			modal();
			$("#main-content").css({ height:"100vh" });
		  },
		  data: { ajax: 'showParticipants', idAction: $('#actions').val(), },
		  error: showError
	   });	
	}else{
		$('#showParticipantsContainer').empty();
		$('#resultMessageDiv').empty();
	}
}

【问题讨论】:

  • 请提供一些代码让我们帮助您! :)
  • 你要追加的div,你能用css控制吗?如果是,那么简单的修复应该是使用溢出:滚动和高度:固定高度属性
  • 您好,感谢您的回复。我提供的解决方案随机工作。将尝试您的修复并更新我的回复。再次感谢。

标签: jquery ajax scroll


【解决方案1】:

好的,我这是随机解决的,通过重新计算容器的大小并更改它:

$("#main-content").css({ height:$("#inner-content").height() });

我认为最终的解决方案是按照 qwfddq 的建议进行操作,即在调用 html() 函数之前将溢出设置为自动:

function showParticipants(){
	
	if($('#action').val() != 0){
	   $.ajax('participants.php', {
		  beforeSend: function(){
			modal();
		  },
		  success: function(data) {
			$("#main-content").css({ overflow:"auto" });
                        $('#showParticipantsContainer').html(data);
			modal();
		  },
		  data: { ajax: 'showParticipants', idAction: $('#actions').val(), },
		  error: showError
	   });	
	}else{
		$('#showParticipantsContainer').empty();
		$('#resultMessageDiv').empty();
	}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2015-07-25
    • 2013-12-11
    相关资源
    最近更新 更多