2013-11-25 73 views
0

我有一个jQuery的移动自动完成表单/列表。我想从输入字段中显示输入的文本,作为列表中的第一个选项。这工作得很好,但是,这个自定义列表项目没有像其他列表项目那样得到样式。这仅在单个字符被按下时才明显。当输入第二个字符时,样式将按照它的格式进行设置。在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/

是否有可能被按下的第一个字符时,更新的款式?

谢谢

回答

2

为了让jQuery Mobile的解决它的类(它增加了一个first-child类它认为li元素是第一),你需要手动调用$('#contacts').listview('refresh');它刷新

Demo


如果它不在您的自定义JS上工作,我会确保在将新节点(<li>)添加到列表中后调用刷新。 jQuery Mobile Docs位于页面最底部,它讲述了刷新如何影响新添加的节点。 此外,他们建议的,而不是使用hide()功能:

如果您最初希望通过添加一类ui-screen-hidden到li元素隐藏列表项,你可以做到这一点。使用这个类可以确保正确应用转角造型以及最后一个可见项目的边框底部。

+0

谢谢!它完美地工作 – user1698462

+0

预计当我将上面的代码移动到我的自定义JS文件中时,它不起作用?但是,如果我将函数重写为正常的javascript函数,函数getInput(),并通过onkeyup =“getInput()”调用它,它工作正常吗? – user1698462

+0

如果不查看任何代码,很难确切地知道问题所在,我编辑了我的答案,试图帮助您朝正确的方向发展 – Ertyguy

相关问题