2011-08-19 32 views
0

内部から関数Bを呼び出す方法は?定義された関数を呼び出す方法は? (Javascript)

機能BにはAの要素が含まれています。

これは私に未定義の関数エラーを与えます。

this.field = new Ext.form.TwinTriggerField({ 
     width : this.width, 
     selectOnFocus : undefined === this.selectOnFocus ? true 
       : this.selectOnFocus, 
     trigger1Class : 'x-form-clear-trigger', 
     trigger2Class : this.minChars ? 'x-hidden' 
       : 'x-form-search-trigger', 
     onTrigger1Click : function() { 
     this.setValue(''); 
     this.focus(); 

     this.Search(); // <----- error, this.Search is not defined 

     }, 
     onTrigger2Click : this.onTriggerSearch.createDelegate(this), 
     minLength : this.minLength 
    }); 

    function Search() { 
     var length = this.field.getValue().toString().length; 

     if (0 === length || this.minChars <= length) { 
      caller = this;   
      this.triggerCount++; 
      this.grid.store.proxy.getConnection().abort(); 
      setTimeout("caller.onTriggerSearch()",this.triggerDelay); 
     } 
    } 

それは、これは "あなたの現在のコンテキストでは何this

+1

最小限のコードを表示できますか? –

+3

私は魔法のボールを聞くことができましたが、あなたのコードを投稿する方が正確でしょう。 – jAndy

+0

要素?メソッドパラメータ?変数(クロージャから)? DOM要素ですか?これはDOMWindowです。 –

答えて

1
function a(){ 
    var el1=document.body; 
    var el2=document.body.innerHTML; 
    b(el1,el2); 
} 

function b(num1, num2){ 
    alert(num1.length); 
    alert(num2.length); 
} 
1

が定義されていないと言っていますか?検索はおそらくそのコンテキストでは定義されていません。 Search()を使用してください。ただし、オブジェクトを検索関数に渡す必要があります。

編集: また、検索機能には何も渡さないので、「これ」は存在しません。