javascript - 点击事件上的 Ajax
问题描述
我正在使用 ajax 重定向页面而不刷新标签。但是,它随机工作。有时,它甚至不会生成我故意放入函数中以检查它是否被调用的日志。我猜一个标签执行已经在内联声明的href。我如何使这 100% 工作?
$(".view-about-us a").on('click', event=>{
event.preventDefault();
var new_url = $(this).attr("href");
$.ajax({
dataType: 'html',
type: "POST",
url: new_url,
data: {
},
success: function(result) {
window.history.pushState(null, null, new_url);
var htmlString = result;
var parser = new DOMParser();
var doc = parser.parseFromString(htmlString, "text/html");
var parent = doc.querySelector(".main-container");
var children = parent.childNodes;
children.forEach(child => console.log(child));
$(".main-container").html(children);
},
error: function(result) {
alert('error');
}
});
});
解决方案
您可以做的一件事是让所有href
属性为javascript:void(0)
,然后将以前的内容存储href
在数据属性中,例如data-href
.
推荐阅读
- android - Google Play 应用签名 - 存储上传密钥的推荐方式是什么?
- android - 在 Observer 中使用 AlarmManager 会导致仅调用一次 observe()
- javascript - 使用 htmlOutput 元素作为使用 JavaScript 导出的 PNG 文件的名称
- c++ - 在 C++ 中使用异常有哪些可能的错误处理策略,它们的后果和含义是什么?
- typescript - 如何从打字稿中的预定义基类中删除动态键?
- javascript - 将两个一维数组映射成一个二维数组,然后用已知值填充
- python - 如何使用 TensorFlow 神经网络输出
- php - Laravel 5.7 未发送验证电子邮件
- wand - 通过 Wand 的渐变选项
- python - 如何将 CSV 文件直接发送到 FTP 服务器