0

メソッドを実装しようとして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"
4

1 に答える 1

1

おそらく、@hrefボタンの href 属性を参照する必要があります。thisのコールバック関数ではもうアクセスできない$.ajaxので、必要なものは事前に変数に格納しておく必要があります。

の直後reorder = el.attr("reorder")に追加href = @href

pushState次に、次のように行を更新します。history.pushState null, "", href

于 2013-09-14T11:26:27.127 に答える