Jump Delay

I have set my character three types of jump that would fit with the idle, walking and running animation.
Now I am at this part where I want the idlejump animation fit with the jumping button/key. The idle animation is like getting ready and then jump, but if I hit space, then the character will do the jumping animation in mid air without touching the ground.
Here is my coding:
using UnityEngine;
using System.Collections;

public class SteveScript : MonoBehaviour
{

public float walkSpeed = 2;
public float runSpeed = 6;
public float gravity = -12;
public float jumpHeight = 1;
public float airControlPercent;

public float turnSmoothTime = 0.2f;
float turnSmoothVelocity;

public float speedSmoothTime = 0.1f;
float speedSmoothVelocity;
float currentSpeed;
float velocityY;
Vector3 velocity;

Animator animator;
Transform cameraT;
CharacterController controller;

void Start()
{
animator = GetComponent();
cameraT = Camera.main.transform;
controller = GetComponent();
}

void Update()
{
// input
Vector2 input = new Vector2(Input.GetAxisRaw(“Horizontal”), Input.GetAxisRaw(“Vertical”));
Vector2 inputDir = input.normalized;
bool running = Input.GetKey(KeyCode.LeftShift);

Move(inputDir, running);

if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
// animator
float animationSpeedPercent = ((running) ? currentSpeed / runSpeed : currentSpeed / walkSpeed * .5f);
animator.SetFloat(“Speed”, animationSpeedPercent, speedSmoothTime, Time.deltaTime);
}

void Move(Vector2 inputDir, bool running)
{
if (inputDir != Vector2.zero)
{
float targetRotation = Mathf.Atan2(inputDir.x, inputDir.y) * Mathf.Rad2Deg + cameraT.eulerAngles.y;
transform.eulerAngles = Vector3.up * Mathf.SmoothDampAngle(transform.eulerAngles.y, targetRotation, ref turnSmoothVelocity, GetModifiedSmoothTime(turnSmoothTime));
}

float targetSpeed = ((running) ? runSpeed : walkSpeed) * inputDir.magnitude;
currentSpeed = Mathf.SmoothDamp(currentSpeed, targetSpeed, ref speedSmoothVelocity, GetModifiedSmoothTime(speedSmoothTime));

velocityY += Time.deltaTime * gravity;
Vector3 velocity = transform.forward * currentSpeed + Vector3.up * velocityY;

controller.Move(velocity * Time.deltaTime);
currentSpeed = new Vector2(controller.velocity.x, controller.velocity.z).magnitude;

if (controller.isGrounded)
{
velocityY = 0;
}

if (Input.GetKey(“escape”))
Application.Quit();
}

void Jump()
{
if (controller.isGrounded)
{
float jumpVelocity = Mathf.Sqrt(-2 * gravity * jumpHeight);
velocityY = jumpVelocity;
}
if (Input.GetKey(“space”))
{
animator.SetTrigger(“isJumping”);
}
}

float GetModifiedSmoothTime(float smoothTime)
{
if (controller.isGrounded)
{
return smoothTime;
}

if (airControlPercent == 0)
{
return float.MaxValue;
}
return smoothTime / airControlPercent;
}
}

What code I need to add in order to delay the jump button so the character should jump after a few seconds?
Jump delay ONLY on idlejump.

I’m using Unity 5.6.4f by the way.

Ok, I fixed the issue by adding the IEnumerator code which makes a button respond after a few seconds by adding WaitForSeconds inside of it.

Thank you, I was really wondering how to put the code like others.