scaling issue on click event.

I am developing a 2D game in Unity. I’ve created a character panel in that to let player select different character. In panel, there are thumbnails for different character. By tapping on a particular character thumbnail, the player can view that character. The original scale of thumbnail is 1, and when player taps on thumbnail, the scale get doubles. All is fine till this. but issue is that whenever player taps on thumbnail its scale gets double. But i want to limit it to once only. I’ve used flag to stop scaling, But still issue is there. After flag it stops scaling, but now player can click on multiple character simultaneously. I am copying snippet here.

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class ViewCharacter : MonoBehaviour {

[SerializeField]
private GameObject TempCharacterHolder ,TempCharacter, TempCharacterText, TempCharacterPrice;

// Use this for initialization
void Start () {
    for (int i = 0; i < ShoppingManager.instance.ShoppingList.Count; i++) {
        if (i == TheGameController.instance.GetSelectedCharacter ()) {
            PlayerPrefs.SetInt ("CharacterScaled" + i, 1);
        } else {
            PlayerPrefs.SetInt ("CharacterScaled" + i, 0);
        }
    }
}

public void ViewCharacterFunc()
{
    int ClickedCharacter = int.Parse (TempCharacterText.GetComponent<Text> ().text);

    foreach (var characters in ShoppingManager.instance.ShoppingList) {
        if (string.Equals (characters.CharacterName, TempCharacterText.GetComponent<Text> ().text)) {
            if (PlayerPrefs.GetInt("CharacterScaled"+characters.CharacterName)==0) {
                ShoppingManager.instance.IncreaseScale (TempCharacter, TempCharacterHolder);

                for (int i = 0; i < ShoppingManager.instance.ShoppingList.Count; i++) {
                    if (i == ClickedCharacter) {
                        PlayerPrefs.SetInt ("CharacterScaled" + i, 1);
                    } else {
                        PlayerPrefs.SetInt ("CharacterScaled" + i, 0);
                    }
                }
            }
        } else {
            Color clr = characters.Character_Holder.GetComponent<Image> ().color;
            clr.a = 1;
            characters.Character_Holder.GetComponent<Image> ().color = clr;

            Vector3 TempVector = characters.CharaacterObject.GetComponent<RectTransform> ().localScale;
            TempVector.x = 1f;
            TempVector.y = 1f;
            characters.CharaacterObject.GetComponent<RectTransform> ().localScale = TempVector;
        }
    }
}

If you want the character big only while pressed, reverting it in a OnMouseUp() method should fix this. If you want it to stay large on a tap, you could have a boolean that checks if it has already been enlarged. If you want it to enlarge with every tap but just not with the rapid, accidental double tap then you could keep a variable with the time of an enlargement and with each press, make sure there has been a set amount of time, or do nothing.