Как обновить div с помощью jQuery изнутри div после его загрузки? - PullRequest
1 голос
/ 08 апреля 2011

Я использую jQuery для загрузки новой страницы внутри div "example-placeholder"

<script>
function example_ajax_request() {
  var parameters = "ajax.html?";
  $('example-placeholder').load(parameters);
}
<script>

<div id="example-placeholder">
<p>Start typing text here and it will be replaced by the results list</p>
</div>

Это загружает файл ajax.html в div, как и ожидалось (I 'я оставил параметры после «?» для ясности, но они работают нормально)

Я хочу перезагрузить ajax.html в тот же div, используя ссылку, сгенерированную в ajax.HTML, но с другими параметрами.

Например, у меня есть список результатов, сгенерированных ajax.html, которые отображают несколько ссылок на страницы.Я хочу загрузить, скажем, ajax.html? Page = 2 в div "example-placeholder" без повторной перезагрузки всей страницы.

Ответы [ 4 ]

1 голос
/ 08 апреля 2011
$('#example-placeholder a').live('click', function(e) {
   e.preventDefault(); 
   $('#example-placeholder').load($(this).attr('href'));
});

Этот сценарий должен связать функцию со всеми ссылками в example-placeholder после того, как они были созданы как live () , обещающая связать обработчик событий со всеми соответствующими элементами сейчас и в будущем.,

protectDefault не позволяет ссылкам изменять window.location.

И последняя строка пытается обновить example-placeholder содержимым страницы, найденной по URL-адресу ссылки.

0 голосов
/ 08 апреля 2011

Вы можете использовать функцию обратного вызова для управления HTML, который вставляется в элемент #example-placeholder:

<script>
function example_ajax_request() {
  var parameters = "ajax.html?";
  $('example-placeholder').load(parameters, function(){
    // manipulate data
  });
}
<script>
0 голосов
/ 08 апреля 2011

попробуйте это:

<script>
function example_ajax_request(event) {

  var 
     parameters = "ajax.html?";

  if (event) {
    event.preventDefault();
    parameters = $(this).attr('href');
  }

  $('example-placeholder').load(parameters);

  return false;
}

$("example-placeholder").delegate("a", "click", example_ajax_request)

<script>

<div id="example-placeholder">
<p>Start typing text here and it will be replaced by the results list</p>
</div>
0 голосов
/ 08 апреля 2011

внутри вашей ajax.html страницы, когда вы готовы перезагрузить ее, сделайте:

window.location = newUrl;

где newUrl может быть строкой типа '/ajax.html?page=2&x=y'

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