Issues with attachInterrupt

You refer to debouncing when I think that you mean bouncing. It is the LACK of debouncing that is causing you issues.

Interrupt Service Routines (ISR) should be designed to do something simple as quickly as possible. Delaying 16 ms does NOT meet this guideline.

Why do you need interrupts anyway? Debouncing can be handled in an ISR but it would be simpler (from a development and debugging standpoint) in code that runs in the loop() function. There is a helpful library for doing debouncing, but it will be easier to use in the loop() function.
See the Arduino Playground section for the Bounce library ( Arduino Playground - Bounce ).

You haven't explained how to tell the difference between a bounce and normal operation. What are you trying to accomplish? How is your Arduino connected? Especially, what is connected to pin 2?

When you post code, PLEASE use the # button to create the appropriate tags.

Your code is suspect. The 16 ms delay is common to both paths and should be factored out.

Your code is suspect. Is this really necessary?...

 else if(digitalRead(scanPin)==LOW){

If the value of pin 2 was not HIGH, isn't it going to be LOW?

Good Luck!