Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Divs下拉列表的行为类似于select或combo_Javascript_Jquery_Html_Css_Combobox - Fatal编程技术网

Javascript Divs下拉列表的行为类似于select或combo

Javascript Divs下拉列表的行为类似于select或combo,javascript,jquery,html,css,combobox,Javascript,Jquery,Html,Css,Combobox,我在一个包装器div中有几个div,它们都代表一个实体,请看图1 当我点击选择1或选择2。。。。我需要打开一个下拉列表,从中我需要选择option并更改Select的值,但是这个下拉列表在设计上必须与Select div项相同,请参见图2 我查看了很多jquery select插件,但没有找到一个。 谁能告诉我怎么做,或者知道一个插件可以解决这个问题 这是html代码 <!DOCTYPE html> <html lang="en"> <head>

我在一个包装器div中有几个div,它们都代表一个实体,请看图1

当我点击选择1或选择2。。。。我需要打开一个下拉列表,从中我需要选择option并更改Select的值,但是这个下拉列表在设计上必须与Select div项相同,请参见图2

我查看了很多jquery select插件,但没有找到一个。 谁能告诉我怎么做,或者知道一个插件可以解决这个问题

这是html代码

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>test</title>
        <meta charset="utf-8">      
        <style>
            .wrapper
            {
                width:330px;
                overflow:hidden; 
                border:solid 1px gray; 
                padding: 3px;                
            }
            .element
            {
                width:80px; 
                min-height: 30px; 
                border:solid 1px black; 
                background-color: orange; 
                text-align: center;
                line-height: 30px;                
            }
            .float-left
            {
                float: left;
            }            
        </style>
    </head>
    <body>
        <div class="wrapper">
            <div class="element float-left">
                Select 1
            </div>
            <div class="element float-left">                
                Select 2                
            </div>
            <div class="element float-left">
                Select 3
            </div>            
            <div class="element float-left">
                Select 4
            </div>            
        </div>

    </body>
</html>

测试
.包装纸
{
宽度:330px;
溢出:隐藏;
边框:实心1px灰色;
填充:3倍;
}
.元素
{
宽度:80px;
最小高度:30px;
边框:实心1px黑色;
背景颜色:橙色;
文本对齐:居中;
线高:30px;
}
.向左浮动
{
浮动:左;
}            
选择1
选择2
选择3
选择4
谢谢。

观看本教程:

更新(如果要通过jquery打开):

在我的示例中删除此css:

 .main_nav > li:hover .sub_nav{
        background-color:#E4E4E4;
        display:block;
    }
并使用jquery:

    $(".main_nav > li").click(function(){
           $(' .sub_nav').show();
          $(this).find('.sub_nav').show();
   });

我假设您了解Jquery库。 . 我想你可以从中得到一个想法。做些改变你就能完成你的工作

 <style>
    .wrapper
    {
        width:330px;
        overflow:hidden; 
        border:solid 1px gray; 
        padding: 3px;                
    }
    .element
    {
        width:80px; 
        min-height: 30px; 
        border:solid 1px black; 
        background-color: orange; 
        text-align: center;
        line-height: 30px;                
    }
    .float-left
    {
        float: left;
    }            
</style>

<div class="wrapper">
    <div class="element float-left">
        Select 1
    </div>
    <div class="element float-left">                
        Select 2
        <div class='options'>
            <div class='element'>Option 1</div>
            <div class='element'>Option 2</div>
            <div class='element'>Option 3</div>
            <div class='element'>Option 4</div>
        </div>                
    </div>
    <div class="element float-left">
        Select 3
        <div class='options'>
            <div class='element'>Option 1</div>
            <div class='element'>Option 2</div>
            <div class='element'>Option 3</div>
            <div class='element'>Option 4</div>
        </div>  
    </div>            
    <div class="element float-left">
        Select 4
    </div>            
</div>
<script type="text/javascript">
$(document).ready(function(){
    $(".options").slideUp(0);
    $(".element").click(function(){
        $(".options").hide(0);
        $(this).find('.options').slideDown(100);
    });

});
</script>

.包装纸
{
宽度:330px;
溢出:隐藏;
边框:实心1px灰色;
填充:3倍;
}
.元素
{
宽度:80px;
最小高度:30px;
边框:实心1px黑色;
背景颜色:橙色;
文本对齐:居中;
线高:30px;
}
.向左浮动
{
浮动:左;
}            
选择1
选择2
选择1
选择2
选择3
选择4
选择3
选择1
选择2
选择3
选择4
选择4
$(文档).ready(函数(){
$(“.options”).slideUp(0);
$(“.element”)。单击(函数(){
$(“.options”).hide(0);
$(this).find('.options').slideDown(100);
});
});

仅仅因为我不喜欢任何jqwery,这里有一些纯js的解决方案。实际上,它还没有完全完成,并抛出了一些错误,但您可以根据自己的喜好修复它

var Ready=function(){
var menu=document.querySelector('.wrapper');
var elementsList=menu.querySelectorAll('.container');
变量切换子菜单=功能(e){
var current=e.target.parentNode.querySelector(“.submenu”);
for(var i=elementsList.length;i--;){
var element=elementsList[i]。查询选择器('.submenu');
if(element!==current&&element.classList.contains('opened'))
element.classList.remove('opened');
}
current.classList.toggle('opened');
};
菜单.addEventListener(“单击”,切换子菜单);
};
document.addEventListener('DOMContentLoaded',Ready)
.wrapper{
宽度:330px;
溢出:隐藏;
边框:实心1px灰色;
填充:3倍;
光标:指针;
}
。选择,。选项{
宽度:80px;
最小高度:30px;
边框:实心1px黑色;
背景颜色:橙色;
文本对齐:居中;
线高:30px;
位置:相对位置;
}
.集装箱{
浮动:左;
}
.子菜单{
位置:绝对位置;
身高:0;
溢出:隐藏;
}
.打开{
高度:自动;
}

试验
选择1
选择1
选择2
选择3
选择2
选择1
选择2
选择3
选择3
选择1
选择2
选择3
选择4
选择1
选择2
选择3

感谢您的回复。这个例子是典型的html菜单。我的实体中不需要菜单选项。在菜单中,当点击选项元素时,链接到某个地方。我需要不同的功能,当单击Option元素来更改Select div中的值时,只需执行与组合或Select相同的行为。好的,那么您要做的是,在我给定的示例的CSS中删除或注释这一行:.main_nav>li:hover.sub_nav{背景颜色:#e4;display:block;}并使用jquery:$(“.main_nav>li”)。单击(function(){$('.sub_nav').show();//关闭任何打开的菜单$(this)。查找('.sub_nav').show();//打开所选菜单})非常感谢您对我的帮助!:)这是我可以用的东西。我将添加这段代码
$(“.sub_nav>li”)。单击(函数(){alert(“Option clicked!:)”);})这就是答案!再说一遍。长命百岁@Ashish Panwarthak感谢您的回复。您的答案与Ashish Panwar的答案非常相似,这是一个完整的解决方案。看看他的链接。再次感谢你的努力。