我试图在点击按钮后调用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" />
答案 0 :(得分: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正在替换每个回发),其中.click()
直接将附加到元素......并且当替换元素时click
处理程序将丢失。