2011-08-13 193 views
2

我正在使用jquery ui自動完成爲我的jquery手機網站。它正在毫無問題地工作,只要我直接打開網站。 如果我導航到ajax導航的一面它不起作用。jquery ui自動完成在jquery手機

編輯可測試的例子:

<div data-role="page" data-theme="b" id="main" data-add-back-btn="true class="main""> 
<div data-role="content"> 
<input type="search" name="search" id="search" value="" /> 
</div> 
<script> 
$('#main').live('pagecreate',function(event, ui) { 
var availableTags = [ 
     "Testone", 
     "Testtwo", 
     "Testthree" 
    ]; 
$("#search").autocomplete({ 
    source: availableTags, 
    minLength: 2, 

}); 
}); 
</script> 
</div> 
+0

剛剛檢查了apache acces_log。當我直接訪問頁面時,它只會被調用。如果我導航到網站並輸入內容,它不會被調用。 – grandh

+0

是的。我還用一個javascript數組作爲源測試了它,我在函數中定義了它。結果相同。所以調用search.php不會是問題。 – grandh

+0

是的,它總是被解僱。用警報消息對其進行測試。如果我正在導航到網站,我會多次收到警報。 – grandh

回答

0

我有一個JQM網站與自動完成,並創下一個類似的問題:Ajax調用觸發填充自動完成選項並不總是由頁面要時完成激發自動完成代碼本身。

我把這一點歸結爲Javascript被觸發的本質(即它是異步的,所以你抓住機會......)。

現在,我知道這是一個黑客,但增加了一個小時超時爲我工作(您將需要試驗的時間段)。在我的應用程序我有這樣的事情後,我的jQM $(document).bind("mobileinit"...代碼:

<script type="text/javascript"> 
    $(function(){ 
    // Horrible, but necessary 
    setTimeout(doAutoComplete, 2500); 
    }); 

    function doAutoComplete(){ 
    $("#YOUR_FIELD_ID").autocomplete({ 
    // Your ac code here… 
    }); 
    } 
</script> 
+0

感謝您的提示,但並沒有解決我的問題。 – grandh