我希望我的可选择控件能够作为一个自动后台控件运行,当选中某些内容时,脚本会点击一个按钮并将可选择控件的值返回到后台。但是它与我的ASP.NET Ajax和UpdatePanels不兼容。有时会发生完全后台刷新,而不是部分刷新。
从我的调试中得出的结论是,当stop函数运行时,jQuery在幕后进行了一些操作。如果我添加一个弹出窗口来停止stop函数,部分后台刷新就可以正常工作。
更加混乱的是,这在IE9和Chrome中有效,但在IE7和IE8中无效。因此,它也可能是浏览器特定的。
jQuery版本是:v1.6.2
脚本:
从我的调试中得出的结论是,当stop函数运行时,jQuery在幕后进行了一些操作。如果我添加一个弹出窗口来停止stop函数,部分后台刷新就可以正常工作。
更加混乱的是,这在IE9和Chrome中有效,但在IE7和IE8中无效。因此,它也可能是浏览器特定的。
jQuery版本是:v1.6.2
脚本:
<script language="javascript">
$('.selectable').live("mouseover", function () {
if (!$(this).data("selectable-init")) {
$(this).data("selectable-init", true);
$(this).selectable({
filter: '.item',
stop: function () {
$("#<% =btnPostback.ClientID %>").click();
}
});
}
});
</script>
HTML:
<div class="selectable">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Literal ID="litIsPostback" runat="server"></asp:Literal>
<asp:Button ID="btnPostback" runat="server" OnClick="btnPostback_OnClick" />
</ContentTemplate>
</asp:UpdatePanel>
代码后台:
protected void btnPostback_OnClick(object sender, EventArgs e)
{
litIsPostback.Text = ScriptManager.GetCurrent(this).IsInAsyncPostBack.ToString();
}