更新面板中的qTip jQuery插件无法正常工作

时间:2011-10-05 14:05:27

标签: c# jquery asp.net updatepanel qtip

我在更新面板中有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>

任何想法如何修复它?

1 个答案:

答案 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”,否则你就是在浪费时间开始。

p.p.s this is a newer version of that plugin i think