我有 1 个页面,其中有 1 个更新面板,其中包含 1 个用户控件(我们称之为 user.ascx)和 2 个按钮。
我的 user.ascx 有一些复选框可以禁用/启用其他控件。我在添加到 user.ascx 的 javascript 中执行此操作,但是当 updatepanel 更新(单击这 2 个按钮中的 1 个后的异步回发)时,我的复选框(单击或更改)的 javascript 事件不会被触发。我知道我可以用函数 pageLoad(sender,args) 包装 $().ready() 并且它工作得很好,但根据该页面http://blog.dreamlabsolutions.com/post/2009/03/25/jQuery- live-and-ASPNET-Ajax-asynchronous-postback.aspx最好使用 live() 函数。
不幸的是,所有可用的绑定事件的方法,如 .click()、.change()、.bind()、.live() 和 .on() 在回发后都无法在异步回发后工作。
不起作用的代码示例:
<script type="text/javascript">
$().ready(function () {
var ddlAge= $("#<%= ddlAge.ClientID %>");
var cboxFirst= $("#<%= cboxFirst.ClientID %>");
var cboxSecond= $("#<%= cboxSecond.ClientID %>");
$(document).on("change", cboxFirst, function () {
if (cboxFirst.is(":checked")) {
ddlAge.attr("disabled", "disabled");
ddlAge.val("");
}
else { ddlAge.removeAttr("disabled"); }
});
cboxSecond.live('change',function () {
if (cboxSecond.is(":checked")) {
ddlAge.attr("disabled", "disabled");
ddlAge.val("");
}
else { ddlAge.removeAttr("disabled"); }
});
});
</script>
两个复选框仅在回发后起作用。我可能会做错什么?有没有人有这样的问题?我正在使用 Jquery 1.7.1,但没有收到任何 js 错误。
我将不胜感激任何帮助。