Javascript jQuery mobile 1.4未增强使用knockout.js添加的内容
我使用knockout.js“foreach”创建了一个元素列表,并希望这些元素能够增强到jQuery移动按钮Javascript jQuery mobile 1.4未增强使用knockout.js添加的内容,javascript,jquery-mobile,knockout.js,progressive-enhancement,Javascript,Jquery Mobile,Knockout.js,Progressive Enhancement,我使用knockout.js“foreach”创建了一个元素列表,并希望这些元素能够增强到jQuery移动按钮 <div data-role="content" class="content"> <div id="buttonContainer" data-bind="foreach: buttons"> <div class="controllerButton" data-role="button">
<div data-role="content" class="content">
<div id="buttonContainer" data-bind="foreach: buttons">
<div class="controllerButton" data-role="button">
<span class="buttonText" data-bind="text: label"></span>
</div>
</div>
</div>
使用jquerymobile1.3.2,这一切都很好。对于1.4alpha,jQuery mobile对元素不做任何操作
(我知道我问的是没有文档的alpha,但某些功能(如页面外的面板)使得开关在此时非常有吸引力。)在调用applyBindings后,需要在按钮上调用.refresh方法 就你的情况来说
...
ko.applyBindings()
$('.controllerButton').button('refresh');
从jQuery Mobile 1.4开始,data role=按钮已弃用,将在1.5上删除。它现在被直接向锚点添加类所取代。主类是
uibtn
,它将一个元素转换成一个按钮
HTML
问题不是重新应用样式,而是jquerymobile首先没有将元素设置为按钮。只要再试一次,它就可以像jQuery mobile 1.3.2一样正常工作。data role=button
从1.4开始就被弃用,并将在1.5上删除,替换为class=“ui btn”
这是在1.4中创建按钮的方法
ko.applyBindings({
buttons: [{
"label": "One",
"icon": "ui-btn ui-icon-home ui-btn-icon-top"
}, {
"label": "Two",
"icon": "ui-btn ui-icon-arrow-r ui-btn-icon-right"
}, {
"label": "Three",
"icon": "ui-btn ui-icon-edit ui-btn-icon-bottom"
}, {
"label": "Four",
"icon": "ui-btn ui-icon-info ui-btn-icon-left"
}, {
"label": "Five",
"icon": "ui-btn ui-icon-delete ui-btn-icon-notext"
}]
});