簡體   English   中英

在一個AJAX調用中調用html內部的jQuery函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM