我正在使用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');
}
});
});
答案 0 :(得分:0)
您可以做的一件事是将所有href
属性设置为javascript:void(0)
,然后将先前href
的内容存储在数据属性中,例如data-href
。