2010-05-30 97 views
0

问候, 这个问题涉及到ASP.NET MVC 我使用AJAX动态创建一些div(一些视图动态呈现)。在这些视图里面有一些JS代码。当用户点击链接时,我想用谷歌地图打开对话框。但是,因为这些视图是动态呈现的,所以它不起作用,因为js代码没有被注入(可以在页面源中看到)。我该如何解决这个问题?Ajax动态创建div + javascript

回答

0

几个想法:

  1. 使用live添加您的处理程序,如果可能的话,它可以动态加载的意见在页面上。如果你对所有加载的div有共同的处理程序,请使用它。 ('a.map-link')。live('click',function(){ ...打开对话框中的点击链接 });

  2. 在AJAX成功回调中添加处理程序。如果处理程序根据加载的div预测不同,则使用此方法。

    $阿贾克斯({ ... 成功:功能(数据){$ (data.html).appendTo(...) .find( 'A')。点击 (函数() { ...使用处理器 }}; } })中的一些其他部分数据;

  3. 将JavaScript包含在AJAX加载的代码中,但在正文中,而不是头元素。如果代码是特定于加载的html,并且不能轻易抽象所有视图,请使用此代码。

查看

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

页面加载视图

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