2008-10-25 99 views
20

我正在使用jQuery的網頁上工作。我有一個從服務器獲取數據並更新div的Ajax調用。在數據裏面有一個jQuery函數,但是在數據加載到頁面之後,函數不會被調用。我已經在頁面中包含了正確的js文件。在AJAX調用中調用一個jQuery函數返回

這是從Ajax調用返回,並放置到一個div:

<script type="text/javascript"> 
    $(function() { 
     $('input').myFunction('param');    
    }); 
</script> 
<p> other html </p> 

如何獲取返回的JavaScript的HTML後運行插入到網頁?

(我使用與jRails插件Rails)的

回答

26

如果你想JavaScript代碼的評估,與HTML內容,你應該設置AJAX調用 「HTML」 的數據類型選項:

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

或數據類型「腳本」,如果要加載和執行.js文件:

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

更多的信息在這裏:Ajax/jQuery.ajax

7

我有一個類似的問題,我想添加一些jQuery日期選取器到我正在通過ajax檢索的幾個字段。這是我爲了解決它而做的......只是快速而骯髒。相反,該整塊從我的Ajax調用返回的:

<script type="text/javascript"> 
    $(function() { 
     $('input').myFunction('param');       
    }); 
</script> 
<p> other html </p> 

我會回到這個(注意由| X |分離器),當我通過AJAX回接收到的數據

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

|x| 

<p> other html </p> 

然後,我返回值分成2個部分:JavaScript來執行,並且HTML顯示:

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

你嘗試Sys.WebForms.PageRequestManager.add_endRequest方法?

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

他沒有使用ASP.NET! – 2009-08-11 21:01:35

-1

好了,你可以使用jQuery load()函數:http://docs.jquery.com/Ajax/load#urldatacallback 正如你可以定義將加載新的內容 例如後執行功能的回調:

$( 「#飼料」)。 load(「new_content.html」,doSomething());

和new_content.html可以定義函數DoSomething的()...

-1

爲ajax.net的endRequestHandler(sender, args)解決方案工作正常,雖然

1

更改

<script type="text/javascript"> 
... 
</script> 

要:

<script> 
... 
</script> 

修復了我的問題。

+0

它不適用於我:( – joseantgv 2014-12-23 17:56:29