1

我试图在单击按钮后调用 blockUI,但我无法让它工作。我究竟做错了什么?

脚本:

    $(function() {
        $('#<%= btnSave.ClientID %>').click(function(e) {   
            e.preventDefault();   
            $.blockUI({   
                message: '<div><h1><img src="Images/busy.gif" />   Please wait...</h1>',
                css: { textAlign: 'center', border: '3px solid #aaa', padding: '10px, 0px, 0px, 0px' , verticalalign: 'middle' }  
            }); 
            var btn = document.getElementById("ctl00_ContentPlaceHolder1_btnHidden");
            btn.click();                 
        }); 
    }); 

按钮:

<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="button" Width="200" />
4

1 回答 1

3

由于您在 UpdatePanel 中,因此请在.live()此处使用,如下所示:

$(function() {
    $('#<%= btnSave.ClientID %>').live('click', function(e) {   
        e.preventDefault();   
        $.blockUI({   
            message: '<div><h1><img src="Images/busy.gif" />   Please wait...</h1></div>',
            css: { textAlign: 'center', border: '3px solid #aaa', padding: '10px, 0px, 0px, 0px' , verticalalign: 'middle' }  
        }); 
        var btn = document.getElementById("ctl00_ContentPlaceHolder1_btnHidden");
        btn.click();                 
    }); 
}); 

.live()document在级别上侦听单击btnSave以冒泡...因此在添加,删除,替换等元素时它可以工作(并且您的 UpdatePanel 每次回发都会替换它),其中 as直接.click()附加到元素...并且当元素被替换时,该处理程序将丢失。click

于 2010-09-29T10:16:40.080 回答