我想确保所有函数在 Jquery 中以同步方式工作

Posted

技术标签:

【中文标题】我想确保所有函数在 Jquery 中以同步方式工作【英文标题】:I Want to make sure that all the functions work in a synchronous way in Jquery 【发布时间】:2018-07-12 21:40:13 【问题描述】:

我想确保 after() 仅在处理 focusout() 之后执行,而不是在 jquery 中执行之前。以下是代码:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <form action="index.php" method="post">
        <label for="lbliosDownload">Todays iOS Downloads</label>
        <input name="txtIosDownloads" type="number" > <br>

        <label for="lblandroidDownload">Todays Android Downloads</label>
        <input name="txtAndroidDownloads" type="number" ><br>

        <label for="iosSignUps">Today's Ios Sign ups</label>
        <input name="txtIosSignUps" type="number" ><br>

        <label for="lblAndroidSignUps">Todays Android SignUps</label>
        <input name="txtAndroidDownloads" type="number" ><br>

    </form>
    <script>
    $(document).ready(function()
        $("input[name='txtIosSignUps']").focusout(function(e)
            e.preventDefault();
            var numberOfSignups = $(this).val();
            alert(numberOfSignups);
        ).after("<div style='color:red'>Hi<div>");
    );
    </script>


</body>

【问题讨论】:

可能在这个答案中回答了如何处理异步代码:***.com/a/14220323/2869791 您还可以查看 jQuery .then()/.done() 【参考方案1】:

after() 调用移到事件处理程序中,这样它就不会在页面加载时发生,而是在事件发生时发生

$(document).ready(function()
    $("input[name='txtIosSignUps']").focusout(function(e)
        e.preventDefault();
        var numberOfSignups = $(this).val();
        alert(numberOfSignups);
        $(this).after("<div style='color:red'>Hi<div>");
    );
);

【讨论】:

以上是关于我想确保所有函数在 Jquery 中以同步方式工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在tornado中以异步的方式调用同步函数

在 React 中以正确的方式进行同步 API 调用 [重复]

如何在EF Core中以两种方式制作唯一键?

在可可触摸中以编程方式将视图位置设置为右上角

如何在不创建函数的情况下运行 plpgsql?

在 jquery 小部件中以边距自动居中