【发布时间】:2010-05-03 17:13:55
【问题描述】:
我在 asp.net 更新面板中有一些基本的 html。使用 livequery,我设置了自动完成、模糊和 keydown 事件,以便在更新面板完成部分页面加载后它们都继续连接。当页面最初加载时,所有事件都可以正常工作,但在更新面板重新加载部分页面后,与 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(...);
});
});
【问题讨论】:
-
假设您使用的是最新版本的 jQuery(您应该是),您不再需要 jQuery.livequery。您可以改用
jQuery.live()。这将是一个很好的起点。 -
@Bears 会吃掉你——我使用的是 1.4.2。我使用 jquery 是因为我想使用自动完成功能,我可以使用 jquery live() 而不像使用 livequery 那样指定事件类型吗?
标签: asp.net jquery updatepanel livequery