首页 > 解决方案 > 点击事件上的 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');
    }
});
});

标签: javascriptjqueryajax

解决方案


您可以做的一件事是让所有href属性为javascript:void(0),然后将以前的内容存储href在数据属性中,例如data-href.


推荐阅读