我正在使用JQuery mobile plugin並且出現了奇怪的問題。變量在函數中定義,但需要重新定義
如果我像下面一樣使用它,它的工作原理。
$("#mainPage").on("pageshow", function(e) {
var availableTags = ['some', 'about', 'tags'];
$("#searchField").autocomplete({
target: $('#suggestions'),
source: availableTags
});
});
但是,如果像下面這樣使用它,它不起作用。 但在函數中定義了cached
並正確顯示了該id。 如果我在函數中重新定義了cached
,它會再次起作用。誰能解釋爲什麼?
var cached = $("#searchField");
$("#mainPage").on("pageshow", function(e) {
var availableTags = ['some', 'about', 'tags'];
//Alert says searchField
alert(cached.attr('id'));
//If I uncomment below line it works.
//cached = $("#searchField");
cached.autocomplete({
target: $('#suggestions'),
source: availableTags
});
});
看起來你正在使用jQuery Mobile。 jQuery Mobile在頁面導航方面做了一些奇怪的事情。 jQuery Mobile的導航很可能會在某個時候刪除您的搜索字段。另一個可能性是你實際上有重複的ID,也是由於jQuery手機處理頁面導航的方式。 –
如果沒有更多的上下文,我們將無法提供幫助。我建議把jsFiddle演示放在一起。 –
問題是你爲什麼要在外面宣佈它? – Raanan