Change a Sprite when clicked?

Been stuck on this for ages! Im wondering how to make a 2D Sprite change texture when it is clicked (Inside it’s collider). Then I need to to change back to it’s old texture when you click elsewhere. It’s probably quite simple but I can’t seem to work it out, any help will be appreciated!

using UnityEngine;
using System.Collections;

public class SpriteSwitch : MonoBehaviour
{
	public Sprite oldSprite;
	public Sprite newSprite;
	SpriteRenderer spriteRenderer;

	void Start ()
	{
		spriteRenderer = GetComponent<SpriteRenderer> ();
	}
	
	// Update is called once per frame
	void Update ()
	{
		if (Input.GetMouseButtonDown (0)) {
			Vector3 mousePos = Input.mousePosition + Vector3.forward * Vector3.Distance (transform.position, Camera.main.transform.position);
			Vector3 worldPos = Camera.main.ScreenToWorldPoint (mousePos);
			Vector2 testPos = new Vector2 (worldPos.x, worldPos.y);

			if (collider2D.OverlapPoint (testPos)) {
				spriteRenderer.sprite = newSprite;
			} else {
				spriteRenderer.sprite = oldSprite;
			}
		}
	}
}

One caveat, when the sprite changes, the collider still stays the same.