无法使用更新面板获取 jquery livequery

发布于 2024-08-31 07:31:06 字数 1487 浏览 6 评论 0原文

我在 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(...);
    });
});

I have some basic html inside an asp.net update panel. Using livequery, I set up autocomplete, blur and keydown events so that they all continue to be wired up after the update panel does a partial page load. When the page initially loads, all the events work fine but after the update panel does a partial page reload, none of the events wired up with livequery continue to work. Are there known issues with livequery and update panels?

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>

And then I have my javascript. Normally it has a bunch of other code, but I can reduce it down to this and still have the problem:

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

        ...

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心不设防 2024-09-07 07:31:06

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

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

If you're on jQuery 1.3+, you can use .live() without any plugin, like this:

$(function() {
  $('.searchlocation').live('keydown', function(event) {
    alert('test');
  });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文