无法初始化可折叠的iconpos

时间:2014-10-29 13:16:32

标签: knockout.js jquery-mobile-collapsible

我在jview移动应用程序的listview中有一个可折叠的列表项。

由于我通过knockout动态绑定到列表,因此我有负责初始化listview的处理程序。因此我的标记很简单。

<div data-role="page" id="p1"> 
    <div  data-role="content">
        <ul id="mylist" data-bind="foreach: items, jqmRefreshList: items">
            <li>
                <div>
                    <h2 data-bind="text: txt"></h2>
                    <p data-bind="text: desc"></p>
                </div>
            </li>            
        </ul>
    </div>    

</div> 

绑定处理程序的编写方式如下:

ko.bindingHandlers.jqmRefreshList = {
    update: function (element, valueAccessor) {
        ko.utils.unwrapObservable(valueAccessor());
        try {
            console.log('executed');
            console.log(element);
            $(element).listview();
            var e = $(element).find('li >div');            
            e.collapsible({iconpos: "right"});
        } catch (ex) {
            console.log(ex);
        }
    }
};

尽管语句为e.collapsible({iconpos: "right"});,但可折叠元素在左侧显示图像,而不是正确。

小提琴:http://jsfiddle.net/yxbv7h9g/2/

1 个答案:

答案 0 :(得分:1)

您正在使用jQuery mobile的旧版本(1.2),其设置名为iconPos,大写为P

var e = $(element).find('li >div');            
e.collapsible({iconPos: "right"});

演示JSFiddle

但是,此版权设置名称在版本1.3.0中已更改为#4899.

因此,如果您升级jQuery移动版本,那么原始代码也将起作用:Demo JSFiddle.