在一个AJAX调用中调用html内部的jQuery函数

我正在使用jQuery的网页。 我有一个Ajax调用,从服务器获取数据并更新div。 在该数据内部有一个jQuery函数,但是在将数据加载到页面后没有调用该函数。 我已经在页面中包含了正确的js文件。

这是从Ajax调用返回并放入div的内容:

 $(function() { $('input').myFunction('param'); });  

other html

将html插入页面后如何获取返回的javascript?

(我正在使用带有jRails插件的Rails)

如果你想要使用html内容进行JavaScript标记评估,你应该将ajax调用的dataType选项设置为“html”:

 $.ajax({ type: "GET", url: "yourPage.htm", dataType: "html" }); 

或者dataType“script”,如果要加载和执行.js文件:

 $.ajax({ type: "GET", url: "test.js", dataType: "script" }); 

更多信息: Ajax / jQuery.ajax

我有一个类似的问题,我想添加小jquery日期选择器到我通过ajax检索的几个字段。 这就是我绕过它所做的…只是快速而肮脏。 而不是从我的ajax调用返回整个块:

  

other html

我会回复此(注意组成| x |分隔符)

  $(function() { $('input').myFunction('param'); }); |x| 

other html

然后当我通过ajax收回数据时,我将返回值分成两部分:要执行的javascript和要显示的html:

  r = returnvalfromajax.split("|x|"); document.getElementById('whatever').innerHTML = r[1]; eval(r[0]); 

更改

  

至:

  

修复了我的问题。

那么,您可以使用jQuery load()函数: http : //docs.jquery.com/Ajax/load#urldatacallback作为回调,您可以定义在加载新内容示例后将执行的函数:

$(“#feeds”)。load(“new_content.html”,, doSomething());

在new_content.html中你可以定义函数doSomething()…

对于ajax.net, endRequestHandler(sender, args)解决方案工作正常

你试过Sys.WebForms.PageRequestManager.add_endRequest方法吗?

  $(document).ready(function() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); } ); function endRequestHandler(sender, args) { // whatever }