document.ready не запускается с помощью pjax

Я пробую использовать pjax для приложения, которое разрабатываю, но у меня ничего не получилось.

Может, я ошибаюсь, позвольте мне объяснить.

В приложении у меня есть главное меню вверху с различными разделами. Для каждой ссылки в этом меню включен pjax, что означает, что изменится только тело приложения.

Обычно, когда вы щелкаете ссылку без pjax, запускается метод document.ready. Я использую это для привязки событий к кнопкам, как в следующем примере.

вот мой файл users.js.coffee

loaded = false;
$ ->
  $("#btn_new_user").bind "click", (event) ->
    if not loaded
      @path = $('#btn_new_user').attr("path")
      $("#new-users-container").load(@path)
      loaded = true
    $("#new-users-container").slideToggle()

Как вы можете видеть в этом примере, когда страница «пользователи» завершает загрузку, она связывает кнопку с событием, которое загрузит форму в div и оживит это показать.

Однако, когда я запускаю в другом разделе администратора и нажимаю ссылку «Пользователи», чтобы отобразить эту кнопку, событие не привязывается. Когда я перезагружаю страницу в разделе «Пользователи», срабатывает document.ready, и кнопка работает нормально.

Есть ли лучший способ привязать события к кнопкам или есть способ запустить document.ready на pjax?

Спасибо.

7
задан Ricardo Polo 30 November 2014 в 20:19
поделиться