[英]Delay href execution click until after ajax call
在骨干視圖中,是否可以將對錨href的單擊的執行延遲到ajax調用完成之前?
我需要的是:
我做了一個測試,在鏈接到錨點的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.