2017-10-17 1 views
0

J'ai l'accordéon jquery dans l'application asp.net mvc et j'essaie de garder le volet courant ouvert après la publication. J'ai essayé les solutions fournies sous cette Keep the current jQuery accordion pane open after ASP.NET postback?. Mais rien ne semble fonctionner pour moi.Conserver le volet courant JQuery Accordion ouvert après publication dans asp.net MVC

<input type="hidden" id="hidAccordionIndex" value="0" /> 
<script> 
    $(function() { 
     var activeIndex = document.getElementById("hidAccordionIndex").value; 

     $("#accordion").accordion({ 
      heightStyle: "content", 
      collapsible: true, 
      navigation: true, 
      active: activeIndex, 
      change: function (event, ui) { 
       var index = $(this).accordion("option", "active"); 
       $(document.getElementById("hidAccordionIndex")).val(index); 
      } 

     }); 
    }); 
</script> 
+0

Je pense que vous devez utiliser '$ ('#' + document.getElementById ("hidAccordionIndex")) val (index)..' 'Ou $ ('# hidAccordionIndex')) val (index); '(notez que' # 'sélecteur). –

+0

'document.getElementById (" hidAccordionIndex ")' renvoie l'élément HTML et non le 'id'. Remplacez par $ ("# hidAccordionIndex"). Val (index) 'ou' document.getElementById ("hidAccordionIndex"). Value = index; '. –

+0

Droit !! J'utilisais la mauvaise syntaxe. Merci :) –

Répondre

0

Vous avez une syntaxe incorrecte il y a:

$(document.getElementById("hidAccordionIndex")).val(index); 

document.getElementById("hidAccordionIndex") rendement identifiant brut de correspondant élément HTML (et il n'y a pas de sélecteur id pour définir l'attribut de l'élément cible id), vous devez donc utiliser soit jQuery id selector pour définir sa valeur:

$("#hidAccordionIndex").val(index); 

Ou en utilisant la version JS vanille:

document.getElementById("hidAccordionIndex").value = index; 
0
<input type="hidden" id="hidAccordionIndex" value="0" /> 

<script> 
    $(function() { 
     var activeIndex = parseInt($("#hidAccordionIndex").val()); 

     console.log(activeIndex); 

     $("#accordion").accordion({ 
      heightStyle: "content", 
      collapsible: true, 
      navigation: true, 
      active: activeIndex, 
      activate: function (event, ui) { 
       var index = $(this).accordion("option", "active"); 
       console.log(index); 
       $("#hidAccordionIndex").val(index); 
      } 

     }); 
    }); 
</script>