2010-03-23 6 views
2

En utilisant la fonction JQuery/AJAX suivante, j'appelle une vue partielle lorsqu'une option est modifiée dans une liste déroulante nommée "ReportedIssue" qui se trouve également dans la vue partielle. L'est nommé "tableContent".Actualiser le conent avec JQuery/AJAX après avoir utilisé une vue partielle MVC

<script type="text/javascript"> 
    $(function() { 
     $('#ReportedIssue') 
     .change(function() { 
      var styleValue = $(this).val(); 
      $('#tableContent').load(
      '/CurReport/TableResults', 
      { style: styleValue } 
     ); 
     }) 
     .change(); 
    }); 
</script> 

Mon problème est qu'après le saut à la vue partielle, je perds le lien vers le javascript. Je pense que je suis censé utiliser le JQuery ".live()" mais je ne suis pas sûr. En bref, je veux rétablir le lien entre mon JavaScript et ma combobox et après l'inclusion du HTML de la vue partielle.

J'espère que je être assez clair,

Aaron

Répondre

2

Cette réponse est dépréciée, voir Mike's answer


À partir de jQuery 1.4, vous pouvez utiliser e live gestionnaire avec l'événement change. Changez simplement votre code pour travailler avec. Si vous êtes bloqué avec une version antérieure de jQuery, vous devez réappliquer le gestionnaire dans le rappel AJAX.

$(function() { 
    $('#ReportedIssue').live('change', function() { 
     var styleValue = $(this).val(); 
     $('#tableContent').load( 
      '/CurReport/TableResults', 
      { style: styleValue } 
    ); 
    }) 
}); 
+0

Merci! Je faisais quelque chose comme ça, mais je n'arrivais pas à faire les choses correctement. –

0

Oui, vous devez utiliser en direct():

$('#ReportedIssue').live('click', function() { 
2

Depuis .live() est maintenant obsolète. Utiliser sur(). Ou, dans mon rappel de succès, j'ai simplement fait un .load() $('#container').load('index.php', '#right'); A travaillé comme un charme.

Questions connexes