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

では、なぜこれら 2 つの変数が定義されていないのでしょうか。それらはスコープ内にあり、対応する jQuery オブジェクトを含む必要があります。

4

1 に答える 1

0

5日間の作業の後、問題が見つかりました: JQueryMobile

何が起こるか:

  1. devicereadyイベント by phonegap
  2. domreadyイベント
  3. 私のinitは呼び出されます
  4. JQM はinput#search要素を抽出して、いくつかのスタイル div で囲まれて再挿入します
  5. 「古い」dom要素を参照しているため、initに保存したdivは無効になりました

現在pageinit、JQM のイベントで初期化を行っています。もう問題ありません。

于 2012-10-16T13:38:50.397 に答える