![](/img/trans.png)
[英]Calling jQuery function from class inside html returned from ajax
[英]Calling a jQuery function inside html return from an AJAX call
我正在使用jQuery的网页。 我有一个Ajax调用,从服务器获取数据并更新div。 在该数据中有一个jQuery函数,但在将数据加载到页面后不会调用该函数。 我已经在页面中包含了正确的js文件。
这是从Ajax调用返回并放入div的内容:
<script type="text/javascript">
$(function() {
$('input').myFunction('param');
});
</script>
<p> other html </p>
将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调用返回整个块:
<script type="text/javascript">
$(function() {
$('input').myFunction('param');
});
</script>
<p> other html </p>
我会回复此(注意组成| x |分隔符)
$(function() {
$('input').myFunction('param');
});
|x|
<p> other html </p>
然后当我通过ajax收回数据时,我将返回值分成两部分:要执行的javascript和要显示的html:
r = returnvalfromajax.split("|x|");
document.getElementById('whatever').innerHTML = r[1];
eval(r[0]);
更改
<script type="text/javascript">
...
</script>
至:
<script>
...
</script>
解决了我的问题。
那么,您可以使用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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.