2010-05-03 12 views
0

J'ai un peu de HTML de base à l'intérieur d'un panneau de mise à jour asp.net. En utilisant livequery, j'ai mis en place des événements de saisie semi-automatique, de flou et de claviers afin qu'ils continuent à être câblés après le chargement partiel de la page. Au chargement initial de la page, tous les événements fonctionnent correctement, mais après le rechargement partiel de la page, aucun des événements câblés avec livequery ne continue à fonctionner. Y a-t-il des problèmes connus avec livequery et les panneaux de mise à jour?ne peut pas obtenir jquery livequery à avec un panneau de mise à jour

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> 

Et puis j'ai mon javascript. Normalement, il a un tas d'autre code, mais je peux réduire à ceci et ont encore le problème:

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

     ... 

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

En supposant que vous utilisez la dernière version de jQuery (ce que vous devriez être), vous n'avez plus besoin de jQuery.livequery. Vous pouvez utiliser 'jQuery.live()' à la place. Ce serait un bon point de départ. –

+0

@Bears va vous manger - J'utilise 1.4.2. J'utilisais jquery parce que je voulais utiliser la fonction autocomplete, puis-je utiliser jquery live() sans spécifier un type d'événement comme je peux avec livequery? – Jeremy

Répondre

2

Si vous êtes sur jQuery 1.3+, vous pouvez utiliser .live() sans plugin, comme ceci:

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

Mon exemple a été simplifié, en plus du clavier, j'ai aussi besoin d'utiliser la saisie semi-automatique. – Jeremy

+0

@Jeremy - Où est votre code jQuery assis, est-il en cours de rechargement dans le panneau de mise à jour? –

+0

non tout est dans un fichier js séparé référencé par une balise de script dans mon en-tête de page. – Jeremy