javascript - 使用 AJAX 隐藏孩子的 div
问题描述
我正在使用 AJAX 加载页面。在每个网页中,我都有 2 个 div 常见 - 标题 div 和内容 div。现在,当我从一个页面导航到另一个页面时,我通过使用将下一页的内容 div 加载到当前页面中
$("#content").load(URL+" #content");
现在我正在使用 AJAX 加载页面,所以我正在更改 URL 并使用 History API 操作历史记录。所以现在当有人按下浏览器的后退按钮时就会出现问题,两个页面的标题 div 在加载过程中都显示,但在加载完成后消失。那么任何人都可以帮助我如何隐藏加载页面的标题 div。
这是我用来处理浏览器后退按钮的代码
function swap(href) {
var x = document.getElementById("myTopnav");
x.className = "topnav";
var req = new XMLHttpRequest();
req.open("GET",
"http://localhost/" +
href.split("/").pop(),
false);
req.send(null);
if (req.status == 200) {
document.getElementById("content").innerHTML = req.responseText;
$("#content").load(" #content");
return true;
}
return false;
}
window.addEventListener("popstate", function(e) {
swap(location.pathname);
e.preventDefault();
});
解决方案
我认为这应该有效。它将响应包装在 DIV 中,以防万一#content
是最外层元素,因为.find()
只搜索内容。
function swap(href) {
$("#myTopNav").addClass("topnav");
var url = href.split('/').pop();
$.get('http://localhost/' + url, function(response) {
var fragment = $("<div>", {
html: response
});
$("#content").replaceWith(fragment.find("#content"));
}
});
}
window.addEventListener("popstate", function(e) {
swap(location.pathname);
e.preventDefault();
});
推荐阅读
- excel - 读取txt文件中的某一行并将值写入某个单元格
- android - 使用 RxJava 启动异步操作而不订阅 observable?
- php - 通过 array_push 计算行数
- python - Python文件使用OpenCV写入所有边界框坐标
- python - 带有4个表的Python sql
- ios - 我应该为通知服务扩展和通知内容扩展创建单独的 apns 证书吗?
- c# - 无法从通用列表中获取值
- html - 如何在 IE11 上显示 HOVER 属性
- java - 将 JNI -> jobject(基本上是映射和/或 java 文件中的映射)转换为 std::map(c++)
- codeigniter - 部分数据已经输出,无法在codeigniter中发送PDF文件