您的位置:首页 > 编程语言 > Python开发

python 版本控制及django,git的使用

2015-12-11 23:10 615 查看
所有Event对象都有target和currentTarget属性,target属性可引用事件分派对象,currentTarget属性可引
用正在被检测事件监听器的当前节点。也就是说target当前你点击组件,currentTarget表示你注册了监听器的组件.

 

在事件将在控件链中向上冒泡,在此过程中target始终不变,currentTarget在每个向上移动的过程中及时改变。

例如当用户点击一个Button控件,很可能事件派发者是Button的内部子组件UITextField,事件向上冒泡过程中target始终为
UITextField不变,但currentTarget会逐步冒泡到Button组件,这时,触发了在Button上监听的Click事件处理函数。

综上,开发人员一般使用event.currentTarget属性,event.target属性很少使用。

测试:

 

Flex代码  


<?xml version=
"1.0"
 encoding=
"utf-8"
?>  

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 layout=
"absolute"
 initialize=
"init();"
>  

 <mx:Script>  

  <![CDATA[  

   import mx.controls.Alert;  

   private function canvasClick(event:MouseEvent):void{  

    Alert.show('canvas target:'
+event.target.id);  

      

    Alert.show('canvas currentTarget:'
+event.currentTarget.id);  

   }  

     

   private function panelClick(event:MouseEvent):void{  

    Alert.show('panel target:'
+event.target.id);  

      

    Alert.show('panel currentTarget:'
+event.currentTarget.id);  

    //event.stopImmediatePropagation();  

   }   

      

   private function init():void {  

    _canvas.addEventListener(MouseEvent.CLICK,canvasClick);  

    _panel.addEventListener(MouseEvent.CLICK,panelClick);  

   }  

  ]]>  

 </mx:Script>  

  

 <mx:Canvas x="0"
 y=
"0"
 width=
"100%"
 height=
"100%"
 backgroundColor=
"#FDFCFC"
 id=
"_canvas"
>  

  <mx:Panel x="116"
 y=
"64"
 width=
"427"
 height=
"293"
 layout=
"absolute"
 id=
"_panel"
>  

   <mx:Button x="188"
 y=
"158"
 label=
"Button"
 id=
"_click"
/>  

   <!-- image这个组件无法产生click事件  -->  

   <mx:Image source="1.png"
 id=
"_image"
 x=
"125"
 y=
"70"
 width=
"102"
 height=
"47"
/>  

  </mx:Panel>  

 </mx:Canvas>  

   

</mx:Application>  

 
总结:

(1)button这个组件默认的已经注册了click事件,image没有注册,必须手动注册click事件

(2)只有子组件的事件触发了,才会触发父组件的,否侧不会触发事件(事件的传播性,从 子----> 父)

(3)event.stopImmediatePropagation();这个方法是停止事件向父组件传播的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: