Ошибка функции JQUERY AJAX LOAD - PullRequest
       11

Ошибка функции JQUERY AJAX LOAD

1 голос
/ 02 февраля 2010

Я загрузил файл second.php в first.php, используя функцию загрузки jquery ajax

$ ( "divclass"). Нажмите (функция () { $ ("# divid"). load ('second.php', {id: $ (this) .attr ('id')}); // alert ("view Clicked"); });

second.php загружает второй контент php в файл first.php успешно.

но second.php содержит некоторую функцию jquery ... в second.php

$ (Документ) .ready (функция () { alert («второй документ jquery»); });

это не работает ... а также назад этот обратный JavaScript также не работает при загрузке в first.php но оба работают при прямом вызове second.php

что делать

Ответы [ 3 ]

1 голос
/ 02 февраля 2010

Ваш второй файл & mdash; я предполагаю, что это фрагмент HTML, а не полный документ & mdash; не получит "готовое" событие, потому что вы просто модифицируете DOM. Если вам нужен встроенный Javascript для запуска, просто поместите его прямо в тег в конце фрагмента:

<div id='stuff'>
  <!-- ... --->
</div>
<script>
  alert("Hi I have just been loaded");
</script>

jQuery обеспечит запуск блока Javascript при добавлении фрагмента в DOM.

0 голосов
/ 03 февраля 2010

Используйте $.get вместо load:

$(".divclass").click(function(){
  var elmt_id = $(this).attr('id');
  $.get('second.php',
        { id: elmt_id, nbRandom: Math.random() },
        function(data){
          $("#divid").html(data);
        });
});

Почему? Потому что load удалит любой javascript с загруженной страницы. $.get поместит весь контент из second.php, любой код js будет выполнен.

Я использую код, описанный выше, во всех моих проектах. Страница, загруженная, имеет готовый код блока JQuery DOM, и все работает.

В моем коде выше я добавляю второй параметр. Цель состоит в том, чтобы просто предотвратить кэширование в IE. Выберите имя, которое не будет использоваться second.php.

0 голосов
/ 02 февраля 2010

JavaScript в second.php не будет работать так, почему бы вам просто не использовать функцию успеха?

$(".divclass").click(function(){
  $('#divid').load('second.php', { id : $(this).attr('id') }, function() {
    alert('second document jquery');
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...