OnPointerEnter is working but OnPointerDown isnt with UI Buttons?

I’m learning to create an Inventory UI with a list of items. I want to select or click a button and Debug.Log it to the console, detecting the button press.

I brought in IPointerEnterHandler and that seems to work, but I dont understand why OnPointerDown isnt. The script is attached to the Item Prefab, I’ve had the thought that maybe I’m putting it in the wrong place. I’m not sure.

I am new to unity and C#. I can only guess what the problem is

public class ShopTemplate : MonoBehaviour, IPointerEnterHandler, IPointerDownHandler
    public TMP_Text tileTxt;
    public int id;
    public void OnPointerEnter(PointerEventData eventData)
        Debug.Log("entered button");

    public void OnPointerDown(PointerEventData eventData)
        Debug.Log("pressed button");


If anyone can help, give advice or lend a suggestion, it will be much appreciated. Thanks.

Well I decided to use OnPointerDown in its own script attached to the button object, and it seems to work fine. But I still don’t understand why it worked with OnPointerEnter but not OnPointerDown in a different object.