大家晚上好, 我在将这个脚本应用到ASP.Net Web窗体和最新的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>
然后,我尝试按照API文档中的最新jquery-3.3.1替换为其中两个命令,两个脚本仍然无法运行:
$('form').on("submit", function () {
ShowProgress();
});
并与此:
$('form').submit(function () {
ShowProgress();
});
所以请帮助解决这个问题的想法是什么? 对不起,我的英语不好,也请教我。
答案 0 :(得分:1)
尝试以下代码:
$('body').on('submit', 'form', function() {
ShowProgress();
});
这是.on()函数的完整签名:
.on( events [, selector ] [, data ], handler(eventObject) )
答案 1 :(得分:0)
live()方法在jQuery 1.7版中已弃用,在1.9版中已删除。请改用on()方法。