2013-07-29 2 views
0

Пример функции:Как вызвать функцию из кода, возвращаемого с помощью запроса AJAX?

function myFunction() { 
    alert("Test"); 
} 

myFunction(); 

Это будет прекрасно работать при вызове в обычном HTML-страницы. Но если это часть содержимого innerHTML, которое возвращается из вызова AJAX, вызов функции myFunction(); не будет работать.

Например, если содержание в DIV TestDiv изменяется с помощью AJAX, и innerHTML содержит следующее:

<span>AJAX Result</span> 
<script language="JavaScript">myFunction();</script> 

Этот код не будет работать, когда запрос AJAX завершен. Как это можно зафиксировать?

+2

Мы не можем помочь, если вы этого не сделаете показать, как вы обрабатываете ответ AJAX – Ian

+0

возможный дубликат [jQuery: Evaluate script в ответе ajax] (http://stackoverflow.com/questions/2158075/jquery-evaluate-script-in-ajax-response) – cmbuckley

+0

S cripts не запускаются, когда вы вставляете их с '.innerHTML'. Вы должны явно создать узел сценария. Если вы используете метод '.load()' jQuery, он позаботится об этом для вас. – Barmar

ответ

1

Вызовите свою функцию в методе успеха по запросу ajax.

$.ajax({ 
    url: 'your url', 
    data: { data: data}, 
    success: function(data) { 
     // Your function 
     myFunction(); 
    } 
}); 

Кстати, если вы используете HTML5, тип больше не нужен на тэгом

<script></script> 

иначе это не

<script type="text/javascript"></script> 
+0

Запрос AJAX также будет возвращать выходные данные HTML. Возможно ли вернуть как «innerHTML» контент, так и аргумент «данные»? – reformed

+0

innerHTML будет данными, вы можете просто разобрать и добавить к div или манипулировать им. –

Смежные вопросы