обновление контента с помощью jquery работает только один раз - PullRequest
0 голосов
/ 18 сентября 2010

Я использую эту функцию jquery:

$(function() {
  $("#refresh").click(function() {
     $("#category_dialog").load("<?php echo $category; ?>")
  })
});

Я также использую ссылку с проблемой id = "refresh", она перезагружает контент только один раз, когда я нажимаю на него второй раз, это не такобновить и я знаю, что были сделаны изменения.Спасибо!

Ответы [ 3 ]

3 голосов
/ 18 сентября 2010

Является ли элемент #refresh частью загружаемого кода? Если это так, вам нужно перепривязать событие click или просто использовать .live () , что медленнее, но иногда бывает полезно, если не злоупотреблять.

Это будет выглядеть примерно так:

$(function() {
    $("#refresh").live('click',function() {
        $("#category_dialog").load("<?php echo $category; ?>");
    });
});

РЕДАКТИРОВАТЬ: Одна вещь, которую я заметил, вы не заканчиваете все свои заявления с ;. Вы можете проверить ошибки синтаксического анализа.

1 голос
/ 18 сентября 2010

Дважды проверьте, что вы не дублируете свои идентификаторы контейнера.

Попробуйте переключиться на классы:

$(function() {
  $(".refresh").click(function() {
     $(".category_dialog").load("<?php echo $category; ?>")
  })
});

Если это работает, то вы знаете, что в загруженном контенте должны быть дубликаты ID.

0 голосов
/ 18 сентября 2010
  1. убедитесь, что ваш элемент с id = refresh существует только один раз в DOM.
  2. убедитесь, что его (#refresh) находится за пределами #category_dialog. если он находится внутри #category_dialog, то ваш php-код должен снова вернуть элемент #refresh, также вам нужно перепривязать ваш #refresh (чтобы избежать повторного связывания, используйте .live ())
...