From 18770d4b0d70c87cf199375d63148f5e45acba26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Tue, 22 Dec 2015 22:54:39 +0800 Subject: [PATCH] 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;