Javascript JS下拉插入符号动画打断输入
我有一个导航栏,包括一个下拉列表。下拉列表中有Javascript,单击下拉按钮时会更改插入符号的方向。但是,单击下拉列表中的任何空间时,下拉列表将塌陷。我在下拉列表中有一个搜索栏,无法使用。我如何改变javascript,使其只在单击按钮时折叠和展开 JavascriptJavascript JS下拉插入符号动画打断输入,javascript,jquery,html,Javascript,Jquery,Html,我有一个导航栏,包括一个下拉列表。下拉列表中有Javascript,单击下拉按钮时会更改插入符号的方向。但是,单击下拉列表中的任何空间时,下拉列表将塌陷。我在下拉列表中有一个搜索栏,无法使用。我如何改变javascript,使其只在单击按钮时折叠和展开 Javascript <script> $(document).ready(function(){ $('.dropdown').click(function(e){ $(this).find('.dropdown-men
<script>
$(document).ready(function(){
$('.dropdown').click(function(e){
$(this).find('.dropdown-menu').toggleClass('show');
$($(e.target).find('.down-caret').toggleClass('open-caret'));
e.preventDefault();
e.stopPropagation();
$(document).click(function(){
$('.dropdown-menu').removeClass('show');
$('.down-caret').removeClass('open-caret');
});
});
});
</script>
$(文档).ready(函数(){
$('.dropdown')。单击(函数(e){
$(this).find('.dropdown menu').toggleClass('show');
$($(e.target).find('.down-caret').toggleClass('open-caret'));
e、 预防默认值();
e、 停止传播();
$(文档)。单击(函数(){
$('.dropdown menu').removeClass('show');
$('down-caret').removeClass('open-caret');
});
});
});
首先,我想你可以移动
$(document).click(function(){
$('.dropdown-menu').removeClass('show');
$('.down-caret').removeClass('open-caret');
});
退出单击侦听器以获得下拉列表。否则,您将在每次打开下拉列表时附加侦听器。此外,如果页面上只有一个。向下插入符号
,则可以简化
$($(e.target).find('.down-caret').toggleClass('open-caret'));
到
然后,您可以尝试过滤侦听器以关闭下拉列表
$(document).not('#search').click(function(){...}
使用您识别搜索栏的方式。另一种方法是捕获搜索栏的单击事件并停止传播
$('#search').click(function(){
return false;
});
考虑到所有这些因素,修改后的代码可能类似于:
<script>
$(document).ready(function(){
$('.dropdown').click(function(e){
$('.dropdown-menu').addClass('show');
$('.down-caret').addClass('open-caret');
e.preventDefault();
e.stopPropagation();
});
$(document).not('#search').click(function(){
$('.dropdown-menu').removeClass('show');
$('.down-caret').removeClass('open-caret');
});
});
</script>
$(文档).ready(函数(){
$('.dropdown')。单击(函数(e){
$('.dropdown menu').addClass('show');
$('.down-caret').addClass('open-caret');
e、 预防默认值();
e、 停止传播();
});
$(文档)。不是(“#搜索”)。单击(函数(){
$('.dropdown menu').removeClass('show');
$('down-caret').removeClass('open-caret');
});
});
<script>
$(document).ready(function(){
$('.dropdown').click(function(e){
$('.dropdown-menu').addClass('show');
$('.down-caret').addClass('open-caret');
e.preventDefault();
e.stopPropagation();
});
$(document).not('#search').click(function(){
$('.dropdown-menu').removeClass('show');
$('.down-caret').removeClass('open-caret');
});
});
</script>