jQuery ajax работает один раз, но каждый раз после этого загружает href через браузер - PullRequest
0 голосов
/ 24 июля 2011

У меня есть обработчик кликов, который читает атрибут href тега и загружает новый контент через ajax. Функция возвращает false, поэтому она не следует URL-адресу href. Это работает один раз, но каждый раз после этого функция не вызывается, и содержимое не загружается асинхронно, а вместо этого следует по ссылке в браузере.

$ ("document").ready( function () {
          $(".post_update").click( function () {
              $("#dashboard_content").html(ajax_load).load($(this).attr('href'));
              return false;
          });
});

<a href="{{ path('post_update', {"id":post.id}) }}" class="post_update">Edit</a>

Ответы [ 2 ]

3 голосов
/ 24 июля 2011

Вы не должны использовать документ в качестве строки, а сам объект, попробуйте код belwo.

Поскольку ссылка находится внутри контейнера панели инструментов, в этом случае следует использовать live.

$(document).ready( function () {
          $("a.post_update").live('click',  function () {
              $("#dashboard_content").html(ajax_load).load($(this).attr('href'));
              return false;
          });
});
0 голосов
/ 24 июля 2011

Если .post_update находится внутри #dashboard_content, проблема в том, что элемент, к которому был привязан обработчик события, теперь отсутствует.Самое простое решение, это использовать метод jQuery.live.Ваш код будет выглядеть так:

$(document).ready(function () {
    $(".post_update").live("click", function (e) {
        $("#dashboard_content").html(ajax_load).load($(this).attr('href'));
        return false;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...