2010-10-11 4 views
0

J'utilise des onglets jQueryUI widget comme jachère:cliquez le bouton dans le problème onglet jQueryUI

<div id="tabs"> 
    <ul> 
     <li><a href="<%:Url.Action("List", new { statusId = 0, typeId = Model.TypeId }) %>"> 
      <span>X</span></a> </li> 
     <li><a href="<%:Url.Action("List", new { statusId = 1, typeId = Model.TypeId }) %>"> 
      <span>Y</span></a> </li> 
    </ul> 
</div> 

Le retour d'action liste même vue avec différents pour chaque onglet, quelque chose de vue retourné comme ceci:

... 
<form id="transactionList" method="post"> 
    <button type="button" id="approve">ok</button> 
    <%: Html.Hidden("approveUrl", Url.Action("Approve"))%> 
    <%: Html.Hidden("TransactionStatusId",Model.StatusId) %>  
<table> 
    <tr> 
... 

Je lie un clic de bouton ok dans le côté client après le chargement de l'onglet:

$("#tabs").tabs({load: tabLoaded}); 
    function tabLoaded(e, ui) { 
     $("#approve").click(approve); 
    } 
    function approve(){ 
alert("something); 
} 

maintenant, quand je change mon onglet à onglet seconde, cli Le bouton ck du deuxième onglet ne fonctionnait pas et l'alerte ne s'affichait pas.

Des idées?

Répondre

1

Si chaque vue renvoie un bouton, vous aurez le même identifiant pour plusieurs boutons?

Remplacez id = "approve" par class = "approve" dans votre vue, puis remplacez $ ("# approve") par $ (". Approve") à la place.

+0

Merci beaucoup, vous avez raison. Je résous mon problème en trouvant le bouton d'approbation dans le contexte d'ui.panel. quelque chose comme ceci: $ ("# approuve", ui.panel) .click (approuve); – mehran

Questions connexes