我试图在ajax调用之前和之后获取元素的高度以更改此元素的内容(出于学习原因)。
示例:
$(document).ready()
calcHeigth('#listar-cursos');
});
funcion calcHeigth(idElement){
console.log($(idElement).outerHeight(true));
}

<div id="listar-cursos">all the content is here</div>
&#13;
文档准备就绪后,calcHeigth
函数返回200px。
该页面上有一个由ajax发送的表单,当请求结束时,我只清空元素的内容,然后再次调用calcHeigth
(在ajaxComplete
事件中)。
$("#formSeacrh").submit(function () {
if ($(this).valid()) {
var url = $(this).attr("action");
var data = $(this).serialize();
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (data) {
$("#listar-cursos").html("");
},
complete: function () {
Completo();
},
beforeSend: function () {
Carregando();
},
error: function () {
Falha();
},
ajaxComplete: function () {
calcHeigth('#listar-cursos');
}
})
return false;
}
return false;
});
calcHeigth
的结果总是200px,就像文档准备好时一样,即使是空元素也是如此。 calcHeigth
没有意识到元素已被更改。我预期的结果是40px。如何修复并获得当前高度?
答案 0 :(得分:0)
$("#formSeacrh").submit(function () {
if ($(this).valid()) {
var url = $(this).attr("action");
var data = $(this).serialize();
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (data) {
$("#listar-cursos").html("");
Completo();
calcHeigth('#listar-cursos');
},
beforeSend: function () {
Carregando();
},
error: function () {
Falha();
}
})
return false;
}
return false;
});
你只需要1个就绪功能,而不是3.我希望现在可以按你的意愿使用。
如果在清除节点中的html后进行计算,则高度应为0。
顺便说一下。$('listar-cursos').empty()
优于.html("")