Javascript “隐藏”按钮位于“外部div”轻触按钮上
我试图让一个按钮在用户不与它交互或它不是用户的焦点时不再显示。我现在正在项目中使用react 在桌面设置中,我通过说Javascript “隐藏”按钮位于“外部div”轻触按钮上,javascript,reactjs,Javascript,Reactjs,我试图让一个按钮在用户不与它交互或它不是用户的焦点时不再显示。我现在正在项目中使用react 在桌面设置中,我通过说onmouseleave={this.hideButton}来实现这一点,但我在使用iPad时遇到了更困难的问题。我试过onTouchCancel={this.hideButton},但运气不好 我查看并看到有一个touchTarget列表,但我没有看到任何关于如何访问这些属性的文档,我这样做是不是走对了路 我以前尝试过的是让body元素使用onClick事件进行侦听,并在按钮显示
onmouseleave={this.hideButton}
来实现这一点,但我在使用iPad时遇到了更困难的问题。我试过onTouchCancel={this.hideButton}
,但运气不好
我查看并看到有一个touchTarget列表,但我没有看到任何关于如何访问这些属性的文档,我这样做是不是走对了路
我以前尝试过的是让body
元素使用onClick事件进行侦听,并在按钮显示时隐藏按钮,但这不起作用,因为在按钮显示时单击按钮将显示我希望在按钮单击时显示的模式
我还应该注意,this.hideButton
只是将布尔值从true更改为false
有什么建议吗
注意:这是一个我们决定不使用jQuery的工作项目(不是我的电话)
以下是它当前的外观:
toggleLogoutButton() {
this.setState({
logoutButtonVisible: this.props.shouldShowLogoutButton
&& !this.state.logoutButtonVisible,
});
}
logoutButtonAction() {
this.toggleLogoutButton();
this.props.showModal();
}
hideLogoutButton() {
if (this.state.logoutButtonVisible) {
this.setState({
logoutButtonVisible: false,
});
}
}
render() {
return(
<div className="some-style-1" >
<span
className="some-style-2"
onClick={this.toggleLogoutButton}>{this.props.text}
{this.props.shouldShowLogoutButton && this.caretRender()}
{this.state.logoutButtonVisible &&
<div className="dropmenu show"
onClick={this.logoutButtonAction}
onMouseLeave={this.hideLogoutButton}
onTouchEnd={this.hideLogoutButton}>
Log Out
</div>}
</span>
</div>);
}
toggleLogoutButton(){
这是我的国家({
logoutButtonVisible:this.props.shouldShowLogoutButton
&&!this.state.logout按钮不可见,
});
}
logoutButtonAction(){
this.toggleLogoutButton();
this.props.showModal();
}
hideLogoutButton(){
if(this.state.logout按钮可见){
这是我的国家({
logoutButtonVisible:false,
});
}
}
render(){
返回(
{this.props.text}
{this.props.shouldShowLogoutButton&&this.caretRender()}
{this.state.logoutButtonVisible&&
注销
}
);
}
请包含更多代码!
为了诊断您需要什么,我们需要查看您已经拥有了什么
首先,改变
onMouseLeave={this.hideButton}代码>
到(假设您的按钮名称具有id=“按钮名称”
)
$('#按钮名').onMouseLeave={this.hide()}代码>
根据您希望按钮显示/隐藏的方式,我不建议使用此选项。相反,将按钮转到disabled=true
。如果您将其隐藏,它将消失,并且不再能够通过onMouseEnter
访问
比如说,
$('#按钮名').onMouseLeave={this.disabled=true;}代码>
尽管如此,隐藏(甚至禁用MouseLeave上的按钮…)并没有多大意义 如果按钮被隐藏,用户将如何知道它在那里?假设屏幕上有一个包含“下拉”按钮的元素,例如,用户单击所述元素,变量displayButton
为真,按钮显示。用户单击屏幕上的其他地方,我们希望displayButton
设置为false。但这是在iPad上,所以把它当作点击事件是行不通的@DenisMatafonov这是否澄清了情况?