Issue with OnDrag & OnDragDrop event

Hi, i had used axure rp 8 for 2 months, now i meet a strange case when i use OnDragDrop event of dynamic panel.

I use OnDrag & OnDragDrop to scroll my repeater and my structure is like this:
(1) Dynamic panel 1 include Dynamic panel 2
(2) Dynamic panel 2 include my repeater
(3) my repeater include some buttons can be click

I want Dynamic panel 1 to be locked on the screen, so i set the OnDrag & OnDragDrop at Dynamic panel 1 to check if Dynamic panel 2 has been moved. Every time Dynamic panel 2 be moved, will trigger OnDrag & OnDragDrop at Dynamic panel 1, and Dynamic panel 2 will move to the position that i want it to be after moving.

I had checked the console and saw these functions works fine last friday(2018/09/21), and buttons also can be click and trigger the OnClick function.

But, everything change today(2018/09/25).

I open my project in chrome and try to click the button in my repeater, i saw console only trigger & print OnDrag & OnDragDrop events, even i didn’t move my mouse’s position. So i can’t trigger any OnClick event in my repeater . This issue didn’t show up and everything works fine last friday.

My version is Axure RP 8 Pro Edition, chrome 69.0.3497.100.

Anyone had same issue?
Is this issue happened cause i update my axure to the lastest version? or this happened cause chrome update?


I’ve found that trying to combine OnDrag and OnClick events is not that reliable. The OnDrag can override OnClick, even when you are just clicking and not dragging. Also, I’ve found that people tend to have fairly “sloppy clicks” where the cursor (or touchspot) moves, especially during usability tests and when using mobile/touchscreens.

Try converting all your OnClick events to OnMouseUp within your dynamic panel / repeater. You can highlight the case(s), cut them and then paste them to the OnMouseUp event (found in the “More Events” droplist under the Interactions section of the Properties panel.)

To account for the “sloppy click” effect, I use a couple global variables (or hidden text widgets in dynamic panel 1): a “dragslop” value, somewhere around 10 (pixels) and a “drag” value, set to “1” or “true” if the current drag has traveled more than “dragslop”. Then, on my OnMouseUp events, I test “If drag equals 0” in order to fire the actions. In this way, a user can slightly move the cursor when clicking. Also, when someone happens to touch on a button when dragging/scrolling, it won’t think it has been clicked when they let go of the drag. So, on dynamic panel 1, put an OnMouseDown : “Set drag to 0” to initiate it. Then add a case to OnDrag with conditional, (“If [[ Math.abs(TotalDragY) ]]” is greater than value of dragslop) Set value of drag equal to “1”. Use [[TotalDragX]] for horizontal dragging.

Here is a basic example:
Drag Panel to Scroll.rp (68.0 KB)

Thanks for these advice, i would try to use OnMouseUp to instead OnClick. :slight_smile:

Btw i found the issue just happened in lastest version Chrome (ver 69.0.3497.100). When i just use another browser (Microsoft Edge) to run my project, it works same as last friday.