提交 74096b2b 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

fix: 优化 touch mouse 事件同时绑定及navigator a 标签阻止默认事件

上级 adb326c3
......@@ -45,16 +45,19 @@ export function useHover(props: UseHoverOptions) {
if (evt.touches.length > 1) {
return
}
handleHover(evt)
handleHoverStart(evt)
}
function onMousedown(evt: MouseEvent) {
evt.preventDefault()
handleHover(evt)
if (hoverTouch) {
return
}
handleHoverStart(evt)
window.addEventListener('mouseup', handlePCHoverEnd)
}
function handleHover(evt: TouchEvent | MouseEvent) {
function handleHoverStart(evt: TouchEvent | MouseEvent) {
// TODO detect scrolling
if ((evt as any)._hoverPropagationStopped) {
return
......@@ -80,6 +83,10 @@ export function useHover(props: UseHoverOptions) {
}
function onMouseup() {
if (!hoverTouch) {
return
}
handlePCHoverEnd()
}
......
......@@ -27,7 +27,12 @@ export default /*#__PURE__*/ defineBuiltInComponent({
const hasHoverClass = props.hoverClass && props.hoverClass !== 'none'
return (
<a class="navigator-wrap" href={url} onClick={onEventPrevent}>
<a
class="navigator-wrap"
href={url}
onClick={onEventPrevent}
onMousedown={onEventPrevent}
>
<uni-navigator
class={hasHoverClass && hovering.value ? hoverClass : ''}
{...(hasHoverClass && binding)}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册