首页 > 解决方案 > 在 jquery 中使用 then 和/或 done

问题描述

完全对使用 jquery ajax 获取一些数据等done感到困惑 想要将该数据添加到 div然后触发点击then

$('#btnplus').on('click', async function(){
    let str = 'lorem';
    let data = await($.post('a_dict_pro.php', {fn: 'btn_plus', args: [str]}));
    console.log(data); // ok
    $('#atitles').prepend(data).done($('.atitle').eq(0).click());
});

数据被添加,但atitle.click显示此错误:

$(...).prepend(...).done is not a function

请帮忙

标签: javascriptjquery

解决方案


.done只能在延迟对象上调用。但.prepend不涉及任何异步;它只是给你一个简单的 jQuery 集合作为回报。

以上所有的异步逻辑都已经处理好了await。下面的所有内容都是同步的,因此只需.atitle同步单击:

$('#btnplus').on('click', async function(){
    let str = 'lorem';
    let data = await($.post('a_dict_pro.php', {fn: 'btn_plus', args: [str]}));
    $('#atitles').prepend(data);
    $('.atitle').eq(0).click();
});

推荐阅读