Invoke onclick while dragging


I’m working on an inventory for my game, in which is possible to merge items.
But to merge two items how are not in the same inventory page, I want to handle click event on change page buttons during the drag and continue to drag after page changed.

So, everything is working (I’ve set 2D colliders, collision events…)
But, when the onClick event is invoked, the current EventSytems change, and dragging is stopped.

So, the main question :

Is it possible to trigger onclick event of a button, while dragging over an other gameObject, and continue dragging ?

→ Is there anyway to invoke onClick button event without changing the current EventSystems for the drag to continue ?
→ Or any way to force dragging after invoking onclick event ?

Here is the script used to invoke button onclick event where dragging over for a certain amount of time :

   public class ButtonHoverClic : MonoBehaviour
        public Button button;
        public float hoverThreshold = 1.5f;

        private float timer = 0f;

        private void Start()
            if (button == null) button = GetComponent<Button>();
        private void OnCollisionEnter2D(Collision2D collision)
            timer = 0f;
        private void OnCollisionStay2D(Collision2D collision)
            if (timer > hoverThreshold)


            timer += Time.fixedDeltaTime;

And i’m using IDrag interface to manage drag&drop :

public class ItemDraggable : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
    private GameObject dragClone;

    public void OnBeginDrag(PointerEventData eventData)
        dragClone = ItemManager.Instance.DragItem(transform, this);
    public void OnDrag(PointerEventData eventData)

        Vector2 input = Input.touches.First().position;
        Vector3 inputPosition = new Vector3(input.x, input.y, transform.position.z);
        dragClone.transform.position = inputPosition + dragDelay;

(Yes, I need want to use onClick invoke, instead of calling the methods directly, cause I want to use this script on several buttons, with scpecific listeners. I would like to avoid doing it manually)

Even calling my method manually (instead of onclick.Invoke(), make the drag event break…

            string onclicMethod = button.onClick.GetPersistentMethodName(0);
            if (onclicMethod.Contains("Next"))
                (button.onClick.GetPersistentTarget(0) as Pagination).NextPage();
            else if (onclicMethod.Contains("Previous"))
                (button.onClick.GetPersistentTarget(0) as Pagination).PreviousPage();

Is there anyone knowing about EventSystem, Drag events, that cans help ?

I’m trying to Execute IDragHandler via the EventSystem, to force dragging after button clicked.

ButExecuteEvents.CanHandleEvent<IDragHandler>(myItemDraggable.gameObject) result is false.
The object have ItemDraggable script, do inherit from IDragHandler. Why he can’t handle it ?