我有一个jquery移动自动填充表单/列表。我想从输入字段中显示输入的文本作为列表中的第一个选项。这工作正常,但是,此自定义列表项不会被设置为列表项的其余部分。这仅在按下单个字符时才会显现。输入第二个字符时,样式的格式应该是原样。
我正在使用以下代码注册被按下的键:
$('#searchdiv').keyup(function() {
$('#searchInput a').html($('#searchdiv input').val());
if($('#searchdiv input').val().length == 0) {
$('#searchInput').hide();
}
else {
$('#searchInput').show();
}
});
请参阅此处的完整示例:http://jsfiddle.net/TAU82/
按下第一个字符时是否可以更新样式?
谢谢
答案 0 :(得分:2)
要让jQuery mobile修复它的类(它将first-child
类添加到它认为是第一个的li元素中)你需要手动调用$('#contacts').listview('refresh');
来刷新它
如果它不能处理您的自定义JS,我会确保在将新节点(<li>
)添加到列表后调用刷新。它位于页面底部的jQuery Mobile Docs,它讨论了由于效率原因刷新如何仅影响新添加的节点。
他们还建议使用hide()
函数来代替:
如果您最初想要隐藏列表项,可以通过向li元素添加
ui-screen-hidden
类来完成此操作。使用此类可确保正确应用角样式以及最后一个可见项的边框底部。