成功获取ajax get请求后使用pushState

时间:2013-09-14 10:38:28

标签: javascript jquery ajax coffeescript pushstate

我正在尝试实现pushState方法,但无法使其正常工作。触发history.pushState行而不执行所需的浏览器窗口URL更改。控制台中没有出现任何错误消息。

问题可能是最后一个@href参数,因为如果我将其替换为"#test"之类的内容,则浏览器窗口网址会更改为/#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"

1 个答案:

答案 0 :(得分:1)

by @href你可能想要引用按钮的href属性。您无法在this的回调函数中访问$.ajax,因此您应该先在变量中存储所需内容。

reorder = el.attr("reorder")之后,添加href = @href

然后像这样更新您的pushState行:history.pushState null, "", href