【问题标题】:Highlight a select2 using highlight method and using css selector使用 highlight 方法和使用 css 选择器突出显示 select2
【发布时间】:2021-01-12 09:55:57
【问题描述】:

我需要突出显示汽车和货车,下面的函数将突出显示非多选2列表,我需要突出显示多选和非多选。

<!DOCTYPE html>
<html>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>

<select name="cars" id="cars" multiple>
  <option value="volvo">Cars</option>

</select>

<select name="vans" id="vans">
  <option value="volvo">Vans</option>
</select>



<script>
function highlightSelect2(type, selector) {
    $(type+'select2-'+ selector +'-container').effect("highlight", {
        color: '#f88'
    }, 10000);
}

$(document).ready(function() {
    $('#cars').select2();
    $('#vans').select2();
    
    highlightSelect2("#","cars")
    highlightSelect2("#","vans")
});

</script>
</body>
</html>

【问题讨论】:

    标签: javascript jquery css jquery-ui jquery-select2


    【解决方案1】:

    您可以定义实际的select2 类,这些类在库中始终相同且永不更改。

    首先,检查select2是否为多个。并通过将true 传递给multiple select highlight else 和普通的__rendered select2 选项,相应地调用您的highlightSelect2 函数。

    在你的 html 中添加一个类 selects 并检查它们是否有多个 prop 并为 highlighting 调用 select2 html 选择。

    工作演示:

    function highlightSelect2(isMultiple = null) {
      //is multiple
      var isWhat = isMultiple ? '--multiple' : '__rendered'
      //highlight
      $('.select2-selection' + isWhat).effect("highlight", {
        color: '#f88'
      }, 10000);
    }
    
    $(document).ready(function() {
      //initilize select2
      $('.mySelect').select2();
    
      //check each and highlight
      $('.mySelect').each(function(index, element) {
        //check if its muliple
        let prop = $(element).prop('multiple')
        //call functions
        prop ? highlightSelect2(prop) : highlightSelect2()
      })
    });
    <!DOCTYPE html>
    <html>
    <body>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
      <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
      <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
    
      <select name="cars" class="mySelect" id="cars" multiple>
        <option value="volvo">Cars</option>
      </select>
      <select name="vans" class="mySelect" id="vans">
        <option value="volvo">Vans</option>
      </select>
    </body>
    
    </html>

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多