2010-05-30 3 views
0

Salutations, La question se rapporte à ASP.NET MVC Je crée des divs dynamiquement en utilisant AJAX (certaines vues rendent dynamiquement). Dans ces vues, il y a du code JS. Lorsque l'utilisateur clique sur le lien, je voudrais ouvrir la boîte de dialogue avec google map. Cependant, parce que ces vues sont rendues dynamiquement, cela ne fonctionne pas parce que le code js n'est pas injecté (ce qui peut être vu dans la source de la page). Comment puis-je résoudre ce problème?Ajax create div dynamiquement + javascript

Répondre

0

Quelques idées:

  1. Ajouter vos gestionnaires utilisant live, si possible, sur la page qui charge les vues dynamiquement. Utilisez ceci si vous avez des gestionnaires communs pour tous les divs chargés. $ ('A.map-link'). Live ('click', function() { ... ouvre le lien cliqué dans le dialogue }); Ajoutez les gestionnaires dans le rappel de succès AJAX.

  2. Utilisez ceci si le gestionnaire diffère de manière prévisible en fonction de la div chargée.

    .ajax $ ({... succès: function (données) { $ (data.html) .appendTo (...) .Find ('a') .cliquez (function() { ... utiliser une autre partie des données dans le gestionnaire }); } });

  3. Incluez le javascript dans le code chargé par AJAX, mais dans le corps, pas dans l'élément head. Utilisez ceci si le code est spécifique au html chargé et ne peut pas être facilement résumé pour toutes les vues.

Voir

<body> 
    <div>specific stuff for this view</div> 
    <script type="text/javascript"> 
     ... this code **will** be executed when loaded ... 
    </script> 
</body> 

Voir la page du chargement

$.ajax({ 
    .... 
    success: function(html) { 
     $(html).appendTo(...); 
    } 
});