单击特定按钮开始加载div

时间:2015-07-22 13:53:04

标签: javascript

当我在后台计算时,我正在使用此javascript来显示加载消息的隐藏div:

 <script src="Scripts/jquery.min.js" type="text/javascript"></script>
    <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);
        }
        $('form').live("submit", function () { 
            ShowProgress();  
        });  
    </script>

据我所知,如果提交被解雇,脚本总是在运行

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

如何更改仅针对特定按钮运行的代码? 单击按钮(注释掉$('form').live("submit",...

时,我尝试加载它
protected void btn_start_Click(object sender, EventArgs e)
    {
        string script = "<script type=\"text/javascript\"> ShowProgress(); </script>";
        ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", script);
    }

加载div显示但从未停止。我有什么要改变的?感谢

更新 忘记if (!IsPostBack)中的代码:

 string script = "$(document).ready(function () { $('[id*=btnSubmit]').click(); });";
 ClientScript.RegisterStartupScript(this.GetType(), "load", script, true);

2 个答案:

答案 0 :(得分:2)

$("#buttonId").click(function(){
  ShowProgress();
});

此方法将在单击特定按钮的任何时候运行(您显然需要将我的代码中的buttonId替换为您所创建的按钮的实际ID。)

答案 1 :(得分:1)

由于文档描述了herelive方法将适用于提交类型的所有事件。根据其他回复的建议,您只需选择一个元素并使用onclick事件,或检查事件的目标是否是您的特定按钮。

我会选择前者,但取决于你想要的行为。