【问题标题】:Using pushState after a successfull ajax get request在成功的 ajax 获取请求后使用 pushState
【发布时间】:2013-09-14 19:26:27
【问题描述】:

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

问题可能是最后一个 @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"

【问题讨论】:

  • 你试过console.log检查@href分配给的值吗?
  • 是的,就是undefined

标签: javascript jquery ajax coffeescript pushstate


【解决方案1】:

@href 你可能想参考按钮的 href 属性。在$.ajax的回调函数中你不能再访问this,所以你应该先把你需要的东西存储在一个变量中。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    相关资源
    最近更新 更多