javascript - 从不同元素切换 select2

标签 javascript jquery jquery-select2

我们在一行中有一个 select2 下拉菜单(只是一个 div),我们需要能够单击整行来触发下拉菜单。显示它没有问题,但试图隐藏它却成了问题,我想知道我的逻辑是否在某个地方有缺陷。 select2 AFAIK 在我们使用的版本上没有切换方法,所以我必须手动使用它的打开和关闭方法。这是我尝试过的。

$('[data-variable-type=select]').on('click', function(e){
  e.stopPropagation();
  var _dropdown = $(this).find('div.interface_dropdown');
  if( _dropdown.hasClass('select2-dropdown-open') ) {
    $(this).find('select.interface_dropdown').select2('close');
  }
  else {
    $(this).find('select.interface_dropdown').select2('open');
  }
});

这会导致它正确打开,但是当您单击关闭它时,它会在鼠标按下时关闭,但在鼠标松开时重新出现。

有什么办法可以让它正确切换吗?

最佳答案

您会发布相关的 HTML 吗?如果看不到内容,就很难理解您在做什么。

$('[data-variable-type=select]').on('click', function(e){ 
    e.stopPropagation();
    var _dropdown = $(this).find('div.interface_dropdown');
    if( _dropdown.hasClass('select2-dropdown-open') ) {
        _dropdown.removeClass('select2-dropdown-open');
        _dropdown.select2('close');
    } else {
       _dropdown.select2('open');
       _dropdown.addClass('select2-dropdown-open');
   }
});

看起来您忘记添加/删除该类,也许这会更好?再说一次,我在看不到你的内容的情况下感觉周围一片黑暗。

关于javascript - 从不同元素切换 select2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17532873/

相关文章:

javascript - 从便士更改计算器 - js

javascript - 使用 Select2 从服务器检索 JSON

javascript - Bootstrap Modal 缩小动画

javascript - 为什么 select2 不设置所有数组元素?

Django 管理员 : How to customize autocomplete_fields width to adapt to the content?

javascript - 有没有办法在没有任何事件的情况下运行 jquery.live 函数

javascript - FullCalendar:仅在当前 View 的 ListView 中显示事件

删除对象时的 JavaScript 奇怪行为

javascript - 单击更改图像集 - Fotorama

javascript - jquery 可拖动多选