Javascript Ajax点击事件
我使用ajax重定向页面,而不刷新标签。然而,它是随机工作的。有时,它甚至不生成日志,我特意将日志放在函数中,以检查它是否被调用。我猜一个标签执行已经在内联中声明的href。我如何使这100%的工作Javascript Ajax点击事件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用ajax重定向页面,而不刷新标签。然而,它是随机工作的。有时,它甚至不生成日志,我特意将日志放在函数中,以检查它是否被调用。我猜一个标签执行已经在内联中声明的href。我如何使这100%的工作 $(".view-about-us a").on('click', event=>{ event.preventDefault(); var new_url = $(this).attr("href"); $.ajax({ dataType: 'html', type: "
$(".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
在执行event.preventDefault()之前定义的event
在哪里
?@kshetline噢,糟糕,我编辑了它。您使用的是箭头函数,因此此不会绑定到单击的元素。在这种情况下,使用一个普通函数,即function(event){…}
@Phil我想它不能与preventDefault一起工作,但它肯定不能这样做,因为我在Drupal下工作,我想Drupal不允许我这样做。顺便说一句,我检查了新的url,但它返回未定义的。所以,我想我需要找到一种方法让它返回正确的url。