2013-03-13 45 views
2

有没有办法可以“初始化”已被jQuery Mobile初始化的页面?我正在一个页面上运行整个测试套件,并希望在每次测试后清理JQM。这是目前的设置是这样的:jQuery Mobile:我可以“不初始化”页面吗?

before(function() { 
    $.mobile.ajaxEnabled = false; 
    $.mobile.linkBindingEnabled = false; 
    $.mobile.hashListeningEnabled = false; 
    $.mobile.pushStateEnabled = false; 
    $.mobile.changePage.defaults.changeHash = false; 
    $.mobile.autoInitializePage = false; 
    $.mobile.defaultPageTransition = 'slide'; 

    this.$el = $('<div></div>'); 
    $(document.body).append(this.$el); 
}); 

after(function() { 
    this.$el.remove(); 
}); 

afterEach(function() { 
    this.$el.empty(); 
}); 

it('some test', function() { 
    var page = $('<div data-role="page">...</div>') 
    this.$el.append(page); 

    // Each test will perform calls like these at some point 
    $.mobile.initializePage(); 
    $.mobile.changePage(page, { 
     allowSamePageTransition: true, 
     pageContainer: this.$el, 
     transition: 'none' 
    }); 

    assert_whatever(); 
}); 

第一次测试运行正常,但第二个运行时出现错误:

cannot call methods on loader prior to initialization; attempted to call method 'show' 

回答

2

好像设置:

$.mobile.activePage = undefined; 
$.mobile.loaderWidget = undefined; 

每次试验前做的伎俩。

+0

谢谢你,你一定已经救了我几天痛苦的痛苦。 – jamix 2013-07-11 16:24:39

相关问题