Greetings, The question relates to ASP.NET MVC I am creating some divs dynamically using AJAX (some views render dynamically). Inside these views a have some JS code. When user click on link i would like to open dialog box with google map. However, because these views are rendered dynamically it does not work because js code is not injected (what can be seen in page source). How开发者_运维知识库 can I resolve this problem?
A few ideas:
Add your handlers using
live
, if possible, on the page which loads the views dynamically. Use this if you have common handlers for all the loaded divs.$('a.map-link').live('click', function() { ... open the clicked link in dialog });
Add the handlers in the AJAX success callback. Use this if the handler differs predictably based on the div that is loaded.
$.ajax({ ... success: function(data) { $(data.html).appendTo(...) .find('a') .click( function() { ... use some other part of the data in the handler }); } });
Include the javascript in the AJAX-loaded code, but in the body, not the head element. Use this if the code is specific to the loaded html and can't easily be abstracted for all views.
View
<body>
<div>specific stuff for this view</div>
<script type="text/javascript">
... this code **will** be executed when loaded ...
</script>
</body>
Page loading view
$.ajax({
....
success: function(html) {
$(html).appendTo(...);
}
});
精彩评论