2013-11-25 64 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

相關問題