0

LiveQueryを使用して、要素がページに追加されたことを検出しました。この要素は、.NETAJAXUpdatePanel内にあります。UpdatePanelが更新されると、ライブクエリは新しい要素を検出しません。

        <asp:UpdatePanel runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="refresh" />
        </Triggers>
        <ContentTemplate>
            <a id="but1" href="#">Button 1</a> 
        </ContentTemplate>
    </asp:UpdatePanel>


 $('#but1').livequery(function(event) {
        alert('Button added');
    });

アラートは、ページが最初に読み込まれたときにのみ発生します。udpatepanelが更新されたときではありません。

4

2 に答える 2

0

ライブ クエリは、変更が jQuery DOM 操作メカニズムを通じて行われた場合にのみ変更を認識します。同様の質問に対するこの回答で、私はこの問題に苦労し、ポーリングベースの回避策を提案しました。

于 2010-09-08T14:05:59.560 に答える
0

次のように、jquery コードを pageLoad 内にラップしてみてください。

function pageLoad()
{
    $(document).ready(function () {
        $('[id$=but1]').livequery(function(event) {
            alert('Button added');
        });
    });
}

ScriptManager タグ内に EnablePageMethods="true" を追加する必要があります。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
于 2010-09-08T14:11:09.820 に答える