javascript 在输入焦点锚标签上,应在react js中完成点击?

mutmk8jj  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(214)

我有一个input和锚标签,现在我想在输入焦点上触发anchor点击。我该如何在react js中做到这一点?
我用的是window.history.pushState,但这不起作用...
验证码:

const focusFun = (e) => {
    window.history.pushState("", "", "/page#myid");
}

<input 
type="text"
onFocus={(e) =>
focusFun(e, props.data)
}
>

<a href="#myid">this anchor should be clicked on input focus</a>
3bygqnnd

3bygqnnd1#

您只需要使用element.click()方法模拟锚标记单击。
所以你需要这样做:

const linkRef = useRef(null)

// then

<input 
type="text"
onFocus={() =>
   linkRef.current.click();
}
>

<a href="#myid" ref={linkRef}>this anchor should be clicked on input focus</a>

或者,在您的情况下,您可以使用element.scrollIntoView()滚动到元素中:

<input 
type="text"
onFocus={() =>
   document.querySelector("#myid").scrollIntoView();
}
>

相关问题