Cause of the phenomenon
Zepto's tap simulates the tap event by listening to a touch event bound to the document, and the tap event is triggered by bubbling to the document
The Tap event (Touchstart\touchend) that is clicked on when it is completed needs to be bubbling to the document before it is triggered, while the user's hand touches the screen (Touchstart) and leaves the screen (touchend) before bubbling to document. The Click event is triggered because the click event has a delay trigger (which is why the mobile does not use the Click for tap) (presumably 300ms, in order to achieve the design of Safari's double-click event), so after executing the tap event, The selected component is immediately hidden, when the Click event is still in the delay of 300ms, when the 300ms arrives, the click is actually not complete but hidden after the element below, if the element is directly below the binding of the Click event will be triggered at this time, If the Click event is not bound, then there is no click, but just below the input box (or select box or radio check box), click the default focus and pop up the input keyboard, there is a point through the phenomenon above.
Workaround:
Replace the Tap event with Touchend and block the default behavior of Touchend preventdefault ()
set the Click event to _tap
_tap = touchend in document? "Touchend": "Click"
This allows you to call Div.on (_tap, function () {}) directly during execution.
Tap point-through processing of zepto