javascript - jquery-3-3-1 中已弃用的 .live() 语句的正确替代是什么

标签 javascript jquery asp.net submit

各位晚安, 我在 ASP.Net Web Form 和最新的 Jquery 库 (jquery-3-3-1) 中应用此脚本来显示进度条时遇到问题(原始引用摘自 this site )

<script src="Scripts/jquery-3.3.1.min.js"></script>
<script src="Scripts/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<link href="CSS/jquery-ui-themes-1.12.1/themes/excite-bike/jquery-ui.min.css" rel="stylesheet" />

<style type="text/css">
    .modal {
        position: fixed;
        top: 0;
        left: 0;
        background-color: black;
        z-index: 99;
        opacity: 0.8;
        filter: alpha(opacity=80);
        /*-moz-opacity: 0.8;*/
        min-height: 100%;
        width: 100%;
    }

    .loading {
        font-family: Arial;
        font-size: 10pt;
        border: 5px solid #67CFF5;
        width: 200px;
        height: 130px;
        display: none;
        position: fixed;
        background-color: White;
        z-index: 999;
    }
</style>

<script type="text/javascript">
    function ShowProgress() {
        setTimeout(function () {
            var modal = $('<div />');
            modal.addClass("modal");
            $('body').append(modal);
            var loading = $(".loading");
            loading.show();
            var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
            var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
            loading.css({ top: top, left: left });
        }, 200);
    }        

    //Deprecated
    //$('form').live("submit", function () {
    //    ShowProgress();
    //});

    $('form').on("submit", function () {
        ShowProgress();
    });
</script>

也许问题之一是 .live() 已被弃用,因为当我使用下面的旧 jquery 时,脚本运行良好。

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

然后我尝试在最新的 jquery-3.3.1 中替换为其中两个命令,如 API 文档所述,这两个脚本仍然无法运行:

$('form').on("submit", function () {
    ShowProgress();
});

还有这个:

$('form').submit(function () {
ShowProgress();
});

所以请帮忙解决这个问题的想法是什么? 抱歉我的英语不好,并向您的建议致以最诚挚的问候。

最佳答案

尝试以下代码:

$('body').on('submit', 'form', function() {
    ShowProgress();
});

这是 .on() 函数的完整签名:

.on( events [, selector ] [, data ], handler(eventObject) )

关于javascript - jquery-3-3-1 中已弃用的 .live() 语句的正确替代是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52177660/

相关文章:

javascript - Asp.net core api 从 Javascript 获取 "415 Unsupported Media Type"错误,而不是 Postman

jQuery,查找元素是否有任何文本

c# - 如何获取数据列表中选定的单选按钮文本?

c# - 如何使用 Windows 身份验证(Active Directory)在 WCF 中进行基于角色的身份验证?

javascript - 从表单调用 flask 函数并在同一页面上显示结果

javascript - 使用 js-xlsx 解析 Excel 中的数据

javascript - 在 Angular 2 中处理过期的 cookie

javascript - 异步等待 + Gulp - GulpUglifyError : unable to minify JavaScript?

javascript - 在给定时间后反转 jQuery 效果

c# - Umbraco 自定义 url 段