簡體   English   中英

延遲href執行單擊,直到ajax調用之后

[英]Delay href execution click until after ajax call

在骨干視圖中,是否可以將對錨href的單擊的執行延遲到ajax調用完成之前?

我需要的是:

  1. 用戶單擊href。
  2. 點擊時,會觸發ajax調用;
  3. 如果ajax調用成功,則只有應執行href;

我做了一個測試,在鏈接到錨點的Backbone視圖中添加了一個方法:

    clickNext: function(e){ 

        setTimeout(function(){
            console.log("test"); 
        }, 5000); 

不幸的是,href是在超時結束之前執行的。

之所以需要它,是因為我想開發一個向導,其中每個頁面都有一個單獨的URL。 我對每個頁面加載都使用localstorage進行檢查,並且對每個“下一步”單擊都執行持久性存儲(Ajax)。

為防止原始單擊觸發位置更改,請使用e.preventDefault()然后在ajax調用成功后,可以使用完成或成功回調來手動更改窗口哈希位置。

myApp.Views.ExampleView = Backbone.View.extend({
    el: "#myView",
    events: {
        "click a": "handleLink"
    },
    handleLink: function (e) {
        e.preventDefault();
        var link = $(e.currentTarget).attr('href');
        $.ajax("/echo/json/")
            .done(function () {
            location.hash = link
        })
    }
});

var myView = new myApp.Views.ExampleView();

小提琴-http: //jsfiddle.net/leighking2/hjcg77h2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM