我更新的編程和JavaScript/JQuery所以請任何幫助表示讚賞。 我正在爲我們公司的新WebApplication的地址經理工作。我使用WebApi來進行一些AJAX調用,併爲我的應用程序的位置管理器中的每個「MailStop」填充數據。一個MailStop只是幫助別人找到地址的內部點...Html在appenTo後切斷?
555 Cleveland Ave NW
Apt. 3
mailstop => Upstairs, Kevin's Desk
Canton, Ohio 44718
所以,在每一個位置,因爲你需要,你可以有很多MailStops。儘管客戶幾乎沒有使用過幾個。
我有我需要的一切幾乎爲這個問題工作,但是當我使用$ .appendTo()時出錯了。
正如你可以從上面的元素越來越正確添加數據,但他們沒有看到顯示。在我的代碼中,我試圖使用.scrollHeight來增加面板的高度,但無論插入多少個mailStop元素,.scrollHeight總是32px。我需要找到一種方法來爲每個mailstop增加大約100px的面板。下面是我的代碼...
function getAjax(url) {
return $.ajax({
url: url
});
}
function displayResults(data, addTo) {
$.each(data, function (k, v) {
$('<div class="mailStops">' +
`<input type="text" class="form-control" readonly value="${v.MailStop1}" />` +
`<input type="text" class="form-control" readonly value="${v.MailStop2}" />` +
`<button class="btn btn-danger btn-block DeleteMailStop" value="${v.MailStopID}">Delete</button>` +
'</div >').appendTo(addTo);
});
}
var acc = document.getElementsByClassName("btnMailStop");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
var LocId = this.value;
this.classList.toggle("active");
//var panel = $("#MailStopPanel" + LocId);
var panel = document.getElementById("MailStopPanel" + LocId);
if (panel.style.maxHeight != "0px") {
//if panel is open remove elements and close it
var removeStops = document.querySelectorAll(".mailStops");
$.each(removeStops, function (k, element) {
panel.removeChild(element);
})
panel.style.maxHeight = "0px";
}
else {
//if panel is closed get AJAX data and append it to the panel
var uri = '/api/MailStop/' + LocId;
var promise = getAjax(uri);
promise.then(data => displayResults(data, panel));
//Need to increase the panel height and window height enough for all elements to be seen
panel.style.maxHeight = panel.scrollHeight + "px";
}
};
}