1

在 jquery 移动应用程序中,我有一个可折叠的列表项作为列表视图中的列表项。

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

<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/

4

1 回答 1

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。

于 2014-10-29T13:43:27.057 回答