3
function Class() {
    var self=this;
    self.searchfield=$('#search');
    self.resultbox=$('#searchresults');

    self.onSearchFieldChanged=function() {
        console.log("F: "+self.searchfield);
        console.log("R: "+self.resultbox);
    }
    self.searchfield.live("keyup",self.onSearchFieldChanged);
}
var INSTANCE=null;
Class.init=function() {
   INSTANCE=new Class();
}
$(document).bind("globalsloaded", Class.init);

只要我在#search 输入中输入内容,控制台上的输出如下:

F: undefined
R: undefined

那么为什么这两个变量是未定义的呢?它们在范围内并且应该包含相应的 jQuery 对象。

4

1 回答 1

0

经过 5 天的工作,我发现了问题:JQueryMobile

会发生什么:

  1. devicereadyphonegap 事件
  2. domready事件
  3. 我的初始化被称为
  4. JQM 提取input#search元素重新插入,周围有一些样式 div
  5. 我在 init 中保存的 div 不再有效,因为指的是“旧”dom 元素

现在我正在pageinit为 JQM 进行初始化。没有问题了。

于 2012-10-16T13:38:50.397 回答