![](/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.