js、Extjsの関数の割り当てと呼び出し

2596 ワード

//     ;
	function scrollFun(){
		Ext.getCmp('scrollItem').doLayout();
		Ext.getCmp('ScrollPanelID').doLayout();
		//        
		console.info('document.getElementById("bodyPanelID").style.height= '+document.getElementById('bodyPanelID').style.height);
		console.info('document.getElementById("bodyPanelID").offsetHeight= '+document.getElementById('bodyPanelID').offsetHeight);
		console.info('document.getElementById("bodyPanelID").clientHeight= '+document.getElementById('bodyPanelID').clientHeight);
		console.info('document.getElementById("bodyPanelID").scrollHeight= '+document.getElementById('bodyPanelID').scrollHeight);
		document.getElementById('scrollItem').style.height=(document.getElementById("bodyPanelID").clientHeight/document.getElementById("bodyPanelID").scrollHeight)*document.getElementById("ScrollPanelID").clientHeight+'px';
		//       (    )
		document.getElementById('scrollItem').style.top=(document.getElementById('bodyPanelID').scrollTop/document.getElementById('bodyPanelID').scrollHeight)*document.getElementById("ScrollPanelID").clientHeight+'px';
		console.info('document.getElementById("scrollItem").style.height= '+document.getElementById('scrollItem').clientHeight);
	}
	
	
	
	//        top 。
	Ext.get('win').on('click',scrollFun());
この中では、id='win'の要素をクリックしないと、scrollFun()という関数も呼び出されます.実はscrollFun関数はページローディング時に既に実行されています.id='win'の要素をクリックすると、逆にエラーが発生します.
なぜですか
理由は:
Ext.get('win').on('click',function(){});         Extjs  click  ,          click  。           ,            ,     click  ,     。 js     、  、     var  ,         。     ,scrollFun():       ()       ,        。

Ext.get('win').on('click',scrollFun); ,
Ext.get('win').on('click',function(){}); 
Ext.get('win').on('click',scrollFun()); 
 
 
function fun(){
      alert('fun');
}
//    fun   a  
var a=fun; 
var a=fun(); ,       fun()   ,     。