penguin/AstroJS

Javascript framework for my blog

commit 18770d4b0d70c87cf199375d63148f5e45acba26

author斟酌 鵬兄 <tgckpg@gmail.com>
date2015-12-22T14:54:39Z
subjectClicking yes / no did not remove key event properly
commit 18770d4b0d70c87cf199375d63148f5e45acba26
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2015-12-22T14:54:39Z

    Clicking yes / no did not remove key event properly
---
 botanjs/src/Components/MessageBox.js | 44 ++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/botanjs/src/Components/MessageBox.js b/botanjs/src/Components/MessageBox.js
index c3a30a9..8210c0a 100644
--- a/botanjs/src/Components/MessageBox.js
+++ b/botanjs/src/Components/MessageBox.js
@@ -23,9 +23,30 @@
 			, Dand.wrap( "span", null, "comp flsf", yes || "OK" )
 		);
 
+		var keyBinding = new EventKey(
+			"KeyDown", function ( e )
+			{
+				e = e || window.event;
+				if ( e.keyCode ) code = e.keyCode;
+				else if ( e.which ) code = e.which;
+
+				if ( no && code == 27 )
+				{
+					_no.click();
+				}
+				else if( code == 13 && ( e.ctrlKey || e.altKey ) )
+				{
+					_yes.click();
+				}
+			}
+		);
+
+		doc.addEventListener( keyBinding );
+
 		// left right button
 		_yes.onclick = function()
 		{
+			doc.removeEventListener( keyBinding );
 			// if handler is set
 			if( _self.clickHandler ) _self.clickHandler( true );
 			document.body.removeChild( _self.stage );
@@ -42,34 +63,13 @@
 
 			_no.onclick = function()
 			{
+				doc.removeEventListener( keyBinding );
 				if( _self.clickHandler ) _self.clickHandler( false );
 				document.body.removeChild( _self.stage );
 				_self.stage = null;
 			};
 		}
 
-		var keyBinding = new EventKey(
-			"KeyDown", function ( e )
-			{
-				e = e || window.event;
-				if ( e.keyCode ) code = e.keyCode;
-				else if ( e.which ) code = e.which;
-
-				if ( no && code == 27 )
-				{
-					_no.click();
-					doc.removeEventListener( keyBinding );
-				}
-				else if( code == 13 && ( e.ctrlKey || e.altKey ) )
-				{
-					_yes.click();
-					doc.removeEventListener( keyBinding );
-				}
-			}
-		);
-
-		doc.addEventListener( keyBinding );
-
 		// set handler
 		if ( handler ) this.clickHandler = handler;