1

我正在研究一个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;
});
4

0 回答 0