Javascript 单击iClearable图标(仅限移动设备)时,如何停止react select input下拉菜单的打开?
我把这个做得很简单,以说明我的问题 当我单击将Javascript 单击iClearable图标(仅限移动设备)时,如何停止react select input下拉菜单的打开?,javascript,html,reactjs,dom-events,react-select,Javascript,Html,Reactjs,Dom Events,React Select,我把这个做得很简单,以说明我的问题 当我单击将isClearable添加到选择组件后出现的“x”图标时,它会清除选择并打开下拉列表。我不想打开下拉菜单,但我不知道如何停止它。有什么想法吗 这个问题只存在于移动浏览器上。clear功能在桌面浏览器上正常工作。要在移动设备上查看codesandbox,请打开Chrome devtools并单击“切换设备工具栏”按钮 编辑:因为我还没有收到回复(22小时),这里有一些更多的细节。最像我的问题。他们讨论了原因可能是由于react tap事件插件 我曾尝
isClearable
添加到选择组件后出现的“x”图标时,它会清除选择并打开下拉列表。我不想打开下拉菜单,但我不知道如何停止它。有什么想法吗
这个问题只存在于移动浏览器上。clear功能在桌面浏览器上正常工作。要在移动设备上查看codesandbox,请打开Chrome devtools并单击“切换设备工具栏”按钮
编辑:因为我还没有收到回复(22小时),这里有一些更多的细节。最像我的问题。他们讨论了原因可能是由于react tap事件插件
我曾尝试使用react fastclick软件包,因为我认为它可能是一个延迟点击(长按手机不会打开菜单)
我已经尝试在属性为onClick={e=>{e.preventDefault();e.stopPropagation();}}的Select
组件周围添加一个div
我尝试添加一个虚拟div,并在Select
组件中的onChange
事件末尾调用document.getElementById(“虚拟”).focus()
编辑2:如果为touchend
事件添加事件断点,请单击导致脚本暂停的“x”,然后按F8(恢复脚本),菜单将不会打开。一定发生了某种延迟点击。检查
至少还不能很好地工作,它会提示您如何修改默认行为。我有一个黑客解决方案。在Select
组件中的onChange
事件函数属性结束时,我在css中设置指针事件:null
,持续50毫秒。如果有人知道一个不太老套的方法来做这件事,请让我知道
临时禁用=()=>{
const elementToDisable=document.getElementById('selectComponentID');
const wait=ms=>newpromise((r,j)=>setTimeout(r,ms))
setAttribute(“样式”,“指针事件:无”)
让prom=wait(50)。然后(()=>elementToDisable.setAttribute(“样式”,“指针事件:全部”))
}
假设你有这样的代码
<Select
isClearable
options={options}
//..
/>
那你就和我一样了。
“isClearable”标志需要一个值
<Select
isClearable={true}
options={options}
//..
/>
希望能有帮助。♥ 尝试将此属性添加到选择组件:
openMenuOnClick={false}
对我有用,希望对你也有用。因为你添加了menuIsOpen=false
下拉菜单在单击时不再打开。我仍然打算使用该功能,因此这并不能回答我的问题。