How to get touch's positon when I hold the button??

I have some ways to solve this problem but its too troublesome.
Hope you guys can provide me with any solution.
Thanks in advance.

public void OnPointerClick(PointerEventData eventData)
    {
        mouse_touching = false;
    }
    public void OnPointerEnter(PointerEventData eventData)
    {
       mouse_in_button = true;
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        mouse_in_button = false;
    }
    public void OnPointerDown(PointerEventData eventData)
    {
        mouse_touching = true;
    }
    void Update () {
        if(mouse_touching ==true||mouse_in_button == true)
          {
                 holding();
          }
   }
    void holding()
    {
      *//HOW CAN I GET --PointerEventData eventData.positon--*
    }

I modified your script a little. So, when you drop it you’ll see four public variables in the inspector. There are two bools, which can be set to true or false. Right next to each of them there are two corresponding Vector2 variables. While clicking or moving the appropriate values will be assigned to them. Simultaneously the position of the mouse will be shown in the console. Here’s the code:

	[SerializeField]
	private bool mouse_touching;
	[SerializeField]
	private Vector2 mouseTouching;
	[SerializeField]
	private bool mouse_in_button;
	[SerializeField]
	private Vector2 mouseInButton;
	
	public void OnPointerClick(PointerEventData eventData)
	{
		if (mouse_touching == false)
		{
			mouseTouching = eventData.position;
		}
	}

	public void OnPointerEnter(PointerEventData eventData)
	{
		if (mouse_in_button == true)
		{
			mouseInButton = eventData.position;
		}
	}
	
	public void OnPointerExit(PointerEventData eventData)
	{
		if (mouse_in_button == false)
		{
			mouseInButton = eventData.position;
		}
	}
	
	public void OnPointerDown(PointerEventData eventData)
	{
		if (mouse_touching == true)
		{
			mouseTouching = eventData.position;
		}
	}
	
	private void Update()
	{
		holding();
	}
	
	private void holding()
	{
		Debug.Log("mouse touching: " + mouseTouching);
		Debug.Log("mouse in button: " + mouseInButton);
	}

I found a method a simple solution.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class 底 : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    public void OnBeginDrag(PointerEventData eventData)
    {
        print(eventData.position);
    }

    public void OnDrag(PointerEventData eventData)
    {
        print(eventData.position);
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        print(eventData.position);
    }
}