我在更新面板中有3个按钮。他们每个人都使用qTip插件。在更新面板之外,它工作正常,但在点击后不会消失。
这是我的代码
function pageLoad() {
$('.subindex a[title]').qtip({
position: {
corner: {
target: 'topMiddle',
tooltip: 'bottomMiddle'
}
},
style: {
name: 'cream',
padding: '7px 13px',
color: '#350608',
width: {
max: 210,
min: 0
},
tip: true
}
});
}
并更新面板
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<a title="Title">
<asp:ImageButton ID="ImgOne" OnCommand="ImgOne_Click" runat="server" /></a>
<a title="Title2">
<asp:ImageButton ID="ImgTwo" OnCommand="ImgTwo_Click" runat="server" /></a>
<a title="Title2">
<asp:ImageButton ID="ImgThree" OnCommand="ImgThree_Click" runat="server" /></a>
</ContentTemplate>
</asp:UpdatePanel>
任何想法如何修复它?
答案 0 :(得分:0)
当UpdatePanel更新时,它会删除其中的标记并重新呈现它,因此您需要将jquery事件重新连接到新标记。您可以尝试使用实时或委托,也可以在面板更新后再次运行pageLoad功能。有一个jquery plugin that can help you do this或者您可以使用某些MS javascript自己这样做
$(function() {
pageLoad(); //initial call for your first page load
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
pageLoad(); //this will be called when an UpdatePanel.Update() occurs
});
});
当然,在我看来,下载webforms并进入asp.net mvc将是一个更好的解决方案。
P.S。确保你在UpdatePanels上使用UpdateMode =“Conditional”,否则你就是在浪费时间开始。