2012-06-28 49 views
3

在我的骨幹路由器的初始化函數時,頁面過渡我jQuery Mobile的Backbone.js的+:回去

$(document).on('click', '.back', function(e) { 
    e.preventDefault(); 
    window.history.back(); 
}); 

,我這樣定義

<a data-rel="back" class="back">Back</a> 

我的背部按鍵的東西是我當我返回時想要改變轉換和方向(reverse = true),目前它使用默認值。

順便說一下,主幹負責創建頁面和路由,我只在UI上使用JQ Mobile(你可以看到我如何改變頁面:jQuery Mobile + backbone.js: navbar issue)。

謝謝。

回答

7

我落得這樣做:

var self = this; 
$(document).on('click', '.back', function(e) { 
    e.preventDefault(); 
    self.back = true; 
    window.history.back(); 
}); 

然後

$.mobile.changePage($(pView.el), {changeHash: false, transition: this.back ? 'slide' : transition, reverse: this.back}); 
this.back = false; 
+0

哈哈,天才!感覺非常討厭,但它的作品! –

0

本着同樣的精神:)

var defs = $.mobile.changePage.defaults; 
$('a[data-role="button"]').live('click', function(event) { 
    var $this = $(this); 

    if($this.attr('data-transition')) { 
    $.mobile.changePage.defaults.transition = $this.attr('data-transition'); 
    } else { 
    $.mobile.changePage.defaults.transition = defs.transition; 
    } 

    if($this.attr('data-direction')) { 
    $.mobile.changePage.defaults.reverse = $this.attr('data-direction') == 'reverse'; 
    } else { 
    $.mobile.changePage.defaults.reverse = false; 
    } 

    if($this.attr('data-rel') === 'back') { 
    window.history.back(); 
    return false; 
    } 
});