我正在使用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