我正在研究一个div
包含多个article
元素的 html 结构。在按下按钮时,一些 jquery 从服务器获取新article
元素的内容,将其替换为模板,并将其附加到div
. 另一个函数删除所有元素,类deletenext
获取顶部元素,选择article:first
并将deletenext
类添加到它 - 这个类隐藏在 css 中,但可以恢复。
这些与按键相关联。
该设置在没有 AJAX 部分的情况下完美运行 - 我可以通过从控制台调用函数或使用按键来滚动元素。当我只包括 AJAX 部分时,它也很有效。
func1();func2
但是,当我从控制台或按键中同时使用调用 as 时,我遇到了问题 - 通常 ajax 只运行,并且 div 不断变长,但偶尔,看似随机的 delete 函数会删除几行。单独调用任一函数,或者从控制台调用都可以正常工作,只要不在同一运行中即可。顺序好像不重要,所以好像不是同步问题(scrollDown
都是同步函数,应该没关系)
相关代码如下所示。
function scrollDown(callbackck) {
$('article.deletenext:first').remove();
$('.content article:first').addClass("deletenext");
};
function scrollUp() {
$('.content article.deletenext').removeClass("deletenext");
}
function loadNext() {
$.getJSON('test.json', function (data) {
$('.content').append("<article><h1>" + data.title + "</h1><section class='articlecontent'>" + data.content + "<section></article>");
});
};
$(document).bind('keydown', function(e) {
if (e.keyCode == 75) {
scrollUp();
}
else if (e.keyCode == 74) {
scrollDown();
loadNext();
};
return false;
});