我有一个事件听众,例如
function navBtn() {
$('#navBtn').on('click', (event) => {
window.location.href = 'someotherfile.html';
myAJAXrequest();
})
}
问题似乎是,由于事件侦听器是单击,因此他们都被触发了。但是到我被发送到另一页时,AJAX请求永远不会发生。不确定如何通过单击按钮将其重定向到另一个页面时,当该页面具有使用Ajax调用添加的内容时,就不会发生。是否有一种方法可以在触发Ajax之前先检查我是否首先要加载的新页面?
您可以使用settimeout函数,它将延迟重定向一段时间,然后在那段时间内执行您的ajax。这是示例代码。
function navBtn() {
$('#navBtn').on('click', (event) => {
myAJAXrequest();
setTimeout(function () {
window.location.href = 'someotherfile.html';
}, 3000)
})
}
在这里,我给出了3秒的延迟,您可以按照自己的意愿增加或减少延迟。
尝试制作" myajaxrequest()" async函数
async function myAJAXrequest(){};
function navBtn() {
$('#navBtn').on('click', (event) => {
await myAJAXrequest();
window.location.href = 'someotherfile.html';
})
}