Код Jquery на странице, вызываемой через ajax - PullRequest
1 голос
/ 22 октября 2010

Я использую arte для jquery, чтобы вызывать страницу через ajax каждые 10 секунд. Он вызывает одну из моих php-страниц, эта php-страница запрашивает базу данных и выплевывает html-код. В этом HTML-коде есть несколько вызовов jquery. Проблема в том, что эти вызовы не работают, если я не включу скрипт jquery в вызываемый файл php. Но это вызывает проблему с кодом jquery на главной странице, которая вызывает файл php. В основном, как я могу получить JQuery внутри HTML, который возвращается со страницы, вызываемой через AJAX для работы? Вот код, который вызывает php-файл:

     $(document).ready(function(){
  $.arte({'ajax_url':'ajax_list.php','on_success':update_field}).start();
  $.arte().set('time',10000);
  });

 function update_field(data){
  $("#glist").html(data);
 }

Таким образом, ajax_list.php возвращает вывод html. Внутри этого html-вывода есть несколько вызовов jquery. Опять же, они не работают, если я не включу библиотеку jquery в ajax_list.php. Но тогда это вызывает проблемы с другими вызовами jquery вне ajax_list.php на той же странице. Есть ли способ включить библиотеку jquery на главную страницу, вызвав ajax_list.php и заставить работать код jquery внутри результатов возврата? Надеюсь, что это имеет смысл.

Ответы [ 3 ]

0 голосов
/ 22 октября 2010

Можно ли написать возвращенную функцию как функцию на исходной странице, вернуть данные в виде объекта JSON, состоящего из

HTML -> 'Ваш HTML',

DATA => массив (элементы или что-то еще),

использовать getJSON, установить HTML как объект JSON.HTML в массиве JSON и отправить объект (ы) в вашем объекте JSON.DATA в вашу функцию для выполнения?

0 голосов
/ 24 октября 2010

Ну, в основном моя проблема заключалась в коде «толстый ящик» в данных, возвращаемых при вызове ajax. Ссылка, найденная мной для решения моей проблемы, находится здесь Thickbox on ajax generation

0 голосов
/ 22 октября 2010

Если библиотека arte не выполняет довольно глубокую магию, встроенный JS в html, возвращаемом ajax_list.php, никогда не должен срабатывать.JS, который динамически вводится в DOM с помощью JS, не оценивается.

Вы можете обойти проблему, связав .live или .delegateобработчики, в зависимости от того, что такое встроенный JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...