Remove the behaviour and use:
On key Up is pressed:
+player is overlapping (attribute) at offset 0,1:
++ player variable jumpstate == 0:
Set player velocity to Y: -jump strenght, X: player x velocity
Set player variable jumpstate to 1
Or something...
You should add a variable (jumpstate) that resets when overlapping the attribute, and so the jump cannot be made twice.
I use that method in my cavestory game I posted a while back
Then for horizontal movement:
While Left is down:
+ velcoity x of player < 0-max speed:
set player velocity to y: player y velocity, x: player x velcoity-acceleration