2013-09-14 3 views
0

Я пытаюсь реализовать метод pushState, но не могу заставить его работать правильно. Линия history.pushState запускается без выполнения требуемого изменения URL-адреса окна браузера. В консоли не появляются сообщения об ошибках.Использование pushState после успешного получения ajax запроса

Проблема, вероятно, является последним аргументом @href, потому что если я заменил его чем-то вроде "#test", URL-адрес окна браузера изменится на /#test.

Что я здесь отсутствует ?:

paramsBtn = $(".reorder-orders") 
paramsBtn.off "click" 
paramsBtn.click (e) -> 
    el = $(e.currentTarget) 
    reorder = el.attr("reorder") 

    $.ajax 
     type: "get" 
     dataType: "script" 
     data: 
      view: reorder 
     url: "/api/orders/reorder_orders" 
     success: (data, status, xhr) -> 
      history.pushState null, "", @href 
      false 

     error: (xhr, textStatus, errorThrown) -> 
      console.log "Error while organizing" 
+0

Вы пробовали 'console.log' проверить значение,' @ href' назначенную? –

+0

Да, это просто 'undefined'. – ChristofferJoergensen

ответ

1

по @href вы, вероятно, хотите, чтобы обратиться к HREF атрибута кнопки. Вы не можете получить доступ к в функции обратного вызова $.ajax, поэтому вам следует хранить то, что вам нужно в переменной раньше.

Сразу после reorder = el.attr("reorder") добавьте href = @href

Затем обновите pushState строку: history.pushState null, "", href

Смежные вопросы