Javascript 由于“显示”属性,自定义选择器不会单击
因此,我制作了一个自定义选择器,如Javascript 由于“显示”属性,自定义选择器不会单击,javascript,jquery,Javascript,Jquery,因此,我制作了一个自定义选择器,如 <div class="search"> <input class="custom-selector" type="text" autocomplete="off" > <ul class="custom-options hidden"> <li>New York</li>
<div class="search">
<input class="custom-selector" type="text" autocomplete="off" >
<ul class="custom-options hidden">
<li>New York</li>
<li>Moscow</li>
<li>Baku</li>
</ul>
</div>
在下一步中,我需要一个函数来onclick获取li值并将其复制到输入,但每当我单击li时,输入就会失去焦点,onclick函数无法在显示无上工作,我发现的一个解决方案是不透明度0,而不是隐藏类的显示无,有没有更理想、更正确的方法来解决此问题?编辑:您可以添加一个
超时时间
$('.custom selector').focus(函数(){
$(“.custom options”).removeClass(“隐藏”);
}).blur(函数(){
setTimeout(函数(){$(“.custom options”).addClass(“hidden”)},350);
})
$('.custom options>li')。单击(函数(e){
$('.custom selector').val($(this.text());
});代码>
。隐藏{
显示:无;
}
- 纽约
- 莫斯科
- 巴库
编辑:您可以添加一个超时
也许
$('.custom selector').focus(函数(){
$(“.custom options”).removeClass(“隐藏”);
}).blur(函数(){
setTimeout(函数(){$(“.custom options”).addClass(“hidden”)},350);
})
$('.custom options>li')。单击(函数(e){
$('.custom selector').val($(this.text());
});代码>
。隐藏{
显示:无;
}
- 纽约
- 莫斯科
- 巴库
您可以在pseudo类中使用focusable元素和:focus的组合,以避免失去焦点
$('.自定义选项a')。单击(功能(ev){
const selected=ev.target.textContent;
$('.custom selector').val(选中);
ev.target.blur();
});代码>
。自定义选项{
显示:无;
}
.search:焦点在.custom选项中{
显示:块;
}
.自定义选项a{
文字装饰:无;
颜色:继承;
}
-
-
-
您可以在pseudo类中使用focusable元素和:focus的组合,以避免失去焦点
$('.自定义选项a')。单击(功能(ev){
const selected=ev.target.textContent;
$('.custom selector').val(选中);
ev.target.blur();
});代码>
。自定义选项{
显示:无;
}
.search:焦点在.custom选项中{
显示:块;
}
.自定义选项a{
文字装饰:无;
颜色:继承;
}
-
-
-
尝试将的css.hidden{display:none;}
添加到您的代码中,并查看输出。这可以做到,但使用了大约300ms+和100,有时它没有注册单击,谢谢!尝试将.hidden{display:none;}
的css添加到您的代码中,并查看输出。这可以做到,但大约需要300毫秒+和100秒,有时它没有注册单击,谢谢!
$('.custom-selector').focus(function() {
$(".custom-options").removeClass("hidden");
}).blur(function() {
$(".custom-options").addClass("hidden");
})