listview触发器('create')不适用于jasmine-jquery mobile

时间:2013-12-03 12:21:57

标签: listview jquery-mobile jasmine

我用jquery-mobile开发了一个应用程序。现在我正在尝试为它设置一个茉莉花框架。

在原始代码中,我正在动态创建列表视图。将项目追加到ul.list之后,我 我正在呼叫ul.list.listview('refresh'); 这在主应用程序中按预期工作。

我添加了不同的UT,以检查此列表中不同事件的行为。所以每次我调用populate函数来加载这个列表。 我的茉莉花代码的一般结构是:

describe("List behavior", function() {
    beforeEach(function(){
        var obj = new listObj({});
        loadFixtures('list.html');
        $('ul.list').trigger('create');
    });

    it("should ...", function() {
        obj.populate(somelist);
        .
        . 
    });

    it("should ...", function() {
        obj.populate(somelist);
        .
        . 
    });

    it("should ...", function() {
        obj.populate(somelist);
        .
        . 
    });


});

填充方法的代码是

this.populate = function(somelist) {
    $('ul.list').append(somelist).listview('refresh');  
};

当该行出现'listview('refresh')'时,它会给出错误Uncaught Error: cannot call methods on listview prior to initialization; attempted to call method 'refresh' 虽然我在每次测试执行之前创建listview。然后我所有的成功测试都失败了。

我尝试过的事情及其结果: 1.我尝试将'ui-listview'分配给ul.list,而不是创建列表视图。它仍然没有用。

  1. 我尝试$('ul.list').listview(),错误为TypeError: Cannot read property 'jQuery110203482820538338274' of undefined。但是这会将所需的类分配给ul。
  2. 任何人都可以建议我一些解决方法,以便我可以执行所有测试而不会出现此错误吗? 感谢。

0 个答案:

没有答案