2010-05-29 4 views
0

J'ai rencontré un problème dans mon projet ASP.NET MVC. J'ai un chat div dans le coin en bas à droite (comme facebook), et bien sûr je ne veux pas que cela se recharge lorsque la navigation à toute ma navigation est ajax.Exécuter des scripts ajax sur la page lors de la navigation avec ajax?

Le problème que je suis face est que j'utilise le code suivant en haut de la page vue:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#divTS').hide(); 
    $('a#showTS').click(function() { 
$('#divTS').slideToggle(400); 
return false; 
    }); 
}); 

</script> 

Le problème est que ce code est uniquement chargé avec ajax et ne semble pas tirer? Je voudrais exécuter tous les scripts dans la vue nouvellement chargée, comme si je n'avais pas navigué avec ajax.

Je ne peux pas mettre cela dans le site.master car il ne charge qu'une seule fois et probablement que les divs que j'essaie de cacher n'existent pas.

Existe-t-il un bon moyen d'exécuter des scripts dans la div ajax-loaded?

Répondre

0

Vous devrez exécuter les scripts dans la fonction de rappel de succès de votre script ajax. Je recommande que vous externalisant cela en une fonction distincte:

function setupEffects() { 
    $('#divTS').hide(); 
    $('a#showTS').click(function() { 
     $('#divTS').slideToggle(400); 
     return false; 
    }); 
} 

$(document).ready(function() { 
    setupEffects(); 
}); 

Et dans le rappel de succès de l'appel de script cette fonction:

success: function(result) { 
    setupEffects(); 
} 
+0

Cela ne veut-il pas dire que tous les scripts seront lancés à chaque fois que quelqu'un navigue, même les scripts qui n'ont rien à voir avec la page en cours? –

+0

Organisez vos scripts en méthodes séparées en fonction de leur fonction et invoquez-les si nécessaire. –

+0

Merci, je vais le faire de cette façon :) –

0

La page principale est rechargée lorsque vous accédez à une autre vue. Vous pouvez également vérifier si une div existe avec $('#div').length > 0. Par ailleurs, la navigation ajax "full site" ne devrait pas être utilisée. Rechargez votre chat sur la navigation - mieux le mettre dans un contrôle (rend les choses plus faciles).

+0

L'idée de la navigation ajax est de ne pas recharger la page principale ... En outre, la navigation ajax site complet est basé sur une recherche et il semble être le meilleur moyen de le faire –

+0

voir ce lien http://stackoverflow.com/questions/554243/how-are-the-facebook- chat-windows-implement –

Questions connexes