Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript成员变量未定义_Javascript_Jquery_Variables - Fatal编程技术网

Javascript成员变量未定义

Javascript成员变量未定义,javascript,jquery,variables,Javascript,Jquery,Variables,只要我在#搜索输入中键入一些内容,控制台上的输出如下所示: function Class() { var self=this; self.searchfield=$('#search'); self.resultbox=$('#searchresults'); self.onSearchFieldChanged=function() { console.log("F: "+self.searchfield); console.lo

只要我在#搜索输入中键入一些内容,控制台上的输出如下所示:

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);

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

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

发生的情况是:

  • devicerady
    phonegap事件
  • domready
    事件
  • 我的名字叫init
  • JQM提取
    input#search
    元素以再次插入它,该元素被一些样式div包围
  • 我在init中保存的div不再有效,因为它引用了“old”dom元素

  • 现在,我正在JQM的
    pageinit
    事件中进行初始化。没有问题了。

    有效:。它确实有效,您确定要在相关dom元素准备就绪时调用代码段吗?您是否忘记了
    $(document).ready()
    ?编辑文章以显示初始化的实际完成方式
    GlobalLoaded
    是一个自定义事件,一旦触发
    device ready
    就会触发该事件(这是一个phonegap应用程序)。因此,如果设备是,dom应该准备好了。听起来你的罪魁祸首是
    self.searchfield=$(“#search”);self.resultbox=$(“#搜索结果”)所以请仔细检查您的id
    
    F: undefined
    R: undefined