jquery select-box - 我怎样才能有两个输入不同的宽度

时间:2012-10-12 22:49:28

标签: javascript jquery css drop-down-menu

我正在使用这个jquery插件让我的选择下拉框看起来更好。 http://code.google.com/p/select-box/

这是一个工作的小提琴: http://jsfiddle.net/FQKax/1/

我希望将两个下拉列表设置为不同的宽度,但我尝试将它们包装在div中,试图破解js给它们不同的ID,我能想到的一切却没有快乐。

另外,我很惭愧地承认我似乎无法改变实际下拉位中文本的颜色。我可以改变背景颜色等,但如果我可以改变文字的颜色就会出错......很奇怪

4 个答案:

答案 0 :(得分:3)

有一个选项可以指定要用作sbHolder对象的类名,但是您不想更改它,因为您需要重写CSS。如果他们让你设置一个额外的课程来应用它会很好,但他们没有。

我只是在select元素周围放一个包装器并使用CSS覆盖默认宽度http://jsfiddle.net/FQKax/8/

.wrapper-one .sbHolder{
    width: 500px;
}

.wrapper-two .sbHolder {
    width: 200px;
}


<div class="wrapper-one">
<select id="language">
    <option value="javascript">Javascript</option>
    <option value="objective-c">Objective C</option>
    <option value="python">Python</option>
</select>
</div>
<br/><br/>

<div class="wrapper-two">
<select id="language2">
    <option value="javascript">Javascript</option>
    <option value="objective-c">Objective C</option>
    <option value="python">Python</option>
</select>
</div>

这需要添加一些标记,@ cih的答案没有。它只需要使用jQuery相应地标记每个实例http://jsfiddle.net/FQKax/37/

$("#language").selectbox();
$("#language2").selectbox();

$(".sbHolder").each(function(index){
    $(this).addClass('instance-' + index);
});

.instance-0.sbHolder{
    width: 500px;
}

.instance-1.sbHolder {
    width: 200px;
}

答案 1 :(得分:1)

$(".sbHolder").first().addClass("first");

这将添加一个您可以首先选中的课程复选框,有更好的方法来迭代多个选择器,查看this link..

除此之外,乔回答了你的其余问题。

答案 2 :(得分:1)

试试这个 http://jsfiddle.net/FQKax/30/

<link href="http://select-box.googlecode.com/svn/tags/0.2/jquery.selectbox.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript" src="http://select-box.googlecode.com/svn/tags/0.2/jquery.selectbox-0.2.min.js"></script>


<select id="language">
 <option value="javascript">Javascript</option>
 <option value="objective-c">Objective C</option>
 <option value="python">Python</option>
</select>
<br/><br/>

<select id="language2">
  <option value="javascript">Javascript</option>
  <option value="objective-c">Objective C</option>
  <option value="python">Python</option>
 </select>


  ##### JQUERY #######
      $(function () {
        $("#language").selectbox();
        $("#language2").selectbox();
        $(".sbHolder").each(function(){
          var $langDom = $(this);
          if($langDom.prev().attr('id') == 'language'){
            $langDom.addClass("language_1");  
          } else if($langDom.prev().attr('id') == 'language2') {
            $langDom.addClass("language_2");          
         }
       });
     });

    ###### CSSS TO ADD #####
   .language_1{
     width: 1200px;
    }

    .language_2{
      width: 200px;
     }

答案 3 :(得分:0)

对于文字颜色,请更改.sbOptions a:link, .sbOptions a:visited {}和/或.sbOptions a:hover, .sbOptions a:focus, .sbOptions a.sbFocus {}

对于宽度,.sbOptions是您的下拉宽度,.sbHolder {}是“当前选中”项目的宽度。