gpt4 book ai didi

php - 用Jquery-Ajax不充值菜单刷新页面

转载 作者:行者123 更新时间:2023-11-28 09:00:22 24 4
gpt4 key购买 nike

我正在开发一个重新加载页面的功能,但我们的菜单实际上是一个 Accordion ,不应该重新加载。即,使其刷新页面以继续处于相同状态。

我在下面展示了我使用 JQuery 来处理重新加载页面的函数,从而在模板中心进行相同的加载。

下面这个函数就是页面的刷新:

function recarregarPagina() {

//Verifica quais teclas estão sendo pressionadas
$(document).on("keydown", function(e) {

//Houve um evento para recarregar a página?
if ((e.which || e.keyCode) === 116 || (e.keyCode === 82 && e.ctrlKey)) {
e.preventDefault();

//Inicializa a hash
var hash = window.location.hash;
console.log("recarregarPagina 1=" + hash);

//A última url está definida?
if (hash !== '' && hash !== undefined) {
console.log("recarregarPagina 2=" + hash);

//Recarrega a página central do template de acordo com a última url visitada
loadView(hash, false, true, true);
}
}
});
}

下面的函数是模板中心的加载 View (页面):

function loadView(url, post, submit, repeat) {

//Remove o hash da url para poder carregá-la sem a ocorrência de loop
url = url.replace("#", "");

//Inicializa variáveis
var div = $("#divConteudo");
var overlay = $("#overlay");


var type = "POST";
var data = $("form").serialize();

//Verifica se o tipo de requisição ajax será post ou GET
if (!post) {
type = "GET";
}

//A última hash é diferente da url atual?
if (lastHash !== url || repeat) {

//Exibe o loader
overlay.show();
div.hide();


/**
* Inicia a requisição AJAX
*/
$.ajax({
//Antes de enviar a requisição
beforeSend: function() {
//Atualiza o último hash visitado
lastHash = url;

//Insere a hash na url do navegador
window.location.hash = url;

},
type: type,
url: url,
//Para enviar os dados junto com a página, verifica se será necessário o envio ou não,
//pois dependendo do caso o $_POST pode atrapalhar o carregamento
data: function() {

//Não foi definido o envio?
if (!submit) {
//Não retorna os dados
return null;

//O envio foi definido, ou omitido
} else {
//Retorna os dados do formulário
return data;
}
}


//Quando a requisição estiver concluída
}).done(function(data) {

//Aguarda o carregamento da View
$(div).html(data).load(function() {
});

//Remove o loader
overlay.hide();
div.show();

//Inicializa o envento para tratar a submissão do form
formSubmit($("form"));

});
}

最佳答案

这会将 #divConteudo 的全部内容替换为 ajax 响应:

$(div).html(data); // you don't need the .load you have after this

您必须改为定位内部 div,并过滤响应以仅获取您想要更新的内容。像这样的事情:

var targetDiv = $('#mioloDoConteudo');
var newData = $(data).find('#mioloDoConteudo').html();
targetDiv.html(newData);

关于php - 用Jquery-Ajax不充值菜单刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com