无法通过更新面板获取jquery livequery

时间:2010-05-03 17:13:55

标签: asp.net jquery updatepanel livequery

我在asp.net更新面板中有一些基本的html。使用livequery,我设置了自动完成,模糊和keydown事件,以便在更新面板执行部分页面加载后继续连接它们。当页面最初加载时,所有事件都可以正常工作,但是在更新面板执行部分页面重新加载后,与livequery连接的所有事件都不会继续工作。 livequery和更新面板是否存在已知问题?

HTML:

<asp:UpdatePanel ID="upData" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:DataList ID="dlData" runat="server"
            DataSource='<%# this.Data %>' DataKeyField="ID">
            <ItemTemplate>
                <table>
                    <tr>
                        <th class="required">Location</th>
                        <td><asp:TextBox ID="txtFromLocation" MaxLength="10" CssClass="searchlocation fromlocation required" runat="server" Text='<%# Eval("FromLocation")%>'/><asp:RequiredFieldValidator ID="rvalFromLocation" runat="server"
            ControlToValidate="txtFromLocation" ValidationGroup="leg">*</asp:RequiredFieldValidator></td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:DataList>
     </ContentTemplate> </asp:UpdatePanel>

然后我有我的javascript。通常它有一堆其他代码,但我可以将它减少到这个仍然有问题:

$(document).ready(function() {
    $(".searchlocation").livequery(function() {                       
        $(this).keydown(function(event) {alert('test');});   

        ...

        $(this).autocomplete(...);
    });
});

1 个答案:

答案 0 :(得分:2)

如果您使用的是jQuery 1.3+,则可以使用.live()而不使用任何插件,如下所示:

$(function() {
  $('.searchlocation').live('keydown', function(event) {
    alert('test');
  });
});