Selectize.js-停止事件item_add

马可

我正在使用selectize并进行了设置,以便用户只能从一组选项中选择一个,如果愿意,他也可以进行新的输入。我要这样做,以便如果用户选择一个选项,则输入项将得到一个类,该类将为其设置样式,因为当启用多个选项时,selectize会为所选项设置样式。

在此处输入图片说明

但是,如果用户输入自己的输入,则输入将不会具有样式,因此输入的输入和选定的输入将有所不同。但是我不确定该怎么做?

这是我的脚本:

$('#engagement_question').selectize({
    persist: false,
    maxItems: 1,
    options: items,
    labelField: "item",
    valueField: "item",
    sortField: 'item',
    searchField: 'item',
    create: true,
    render: {
      option_create: function(data, escape) {
        return '<div class="create">Nytt inlegg<strong> ' + escape(data.input) + '</strong>&hellip;</div>';
      }
    },
});

我已经尝试过使用事件api,但是没有运气:

var addItemClass = function() {
    console.log('entered');
    $('.item').addClass( "item-background" );
};

var removeItemClass = function() {
    console.log('entered');
    $('.item').removeClass( "item-background" );
};

var selectize = $select[0].selectize;
selectize.on('item_add', addItemClass);
selectize.on('option_add', removeItemClass);

想法是添加一个类,如果从选项中选择了该类,它将为输入提供背景,如果输入是新的,则将其删除。但是当它进入功能时removeItemClass,它也立即进入addItemClass功能。我该如何制止呢?

更新

最后,我用它来使它按我想要的方式工作:

onChange: function(value) {
      var unique = true;

      for(var i = 0; i < items.length; i++) {
        if(items[i].item == value) {
          unique = false;
          break;
        }
      }

      if(value.length > 0 && unique) {
        $question.next('.selectize-control').find('.selectize-input').addClass('user-created');
      }
    },
罗尼·洛德(RonyLoud)

removeItemClass是从内部开除的selectize.js在这里,我们检查,如果最后.item text没有在现有元素匹配items arraybackground-image这是一个gradient设置为none和我们的item-background类应用

JSFiddle

JS:

 var items = [
        { id: 1, item: 'Spectrometer' },
        { id: 2, item: 'Star Chart' },
        { id: 3, item: 'Electrical Tape' }
        ];

            var $select = $('#engagement_question').selectize({
                persist: false,
                maxItems: 3,
                options: items,
                labelField: "item",
                valueField: "item",
                sortField: 'item',
                searchField: 'item',
                create: true,
                render: {
                    option_create: function (data, escape) {
                        return '<div class="create">Nytt inlegg<strong> ' + escape(data.input) + '</strong>&hellip;</div>';
                    }
                },
            });
            var addItemClass = function () {
                console.log('entered1');
                var input = $.map(items, function (element, index) {
                    if (element.item == $('.item:last').text())
                        return element;
                    else
                        return null;
                });
                if (input.length == 0)
                {
                    $('.item:last').css('background-image', 'none');
                }
                $('.item:last').addClass("item-background");

            };

            var removeItemClass = function () {
                console.log('entered2');
                $('.item:last').removeClass("item-background");
                //$('.item').css('background-image', 'none');
            };

            var selectize = $select[0].selectize;
            selectize.on('item_add', addItemClass);
            selectize.on('option_add', removeItemClass);

的CSS

.item-background {
            background-color:#000!important;
        }

的HTML

<select id="engagement_question" multiple>

</select>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在selectize.js中停止传播

来自分类Dev

Selectize.js事件-无法正常工作

来自分类Dev

selectize.js:清除onChange事件中的选定值

来自分类Dev

销毁Selectize.js实例

来自分类Dev

Selectize.js委托事件在选项上不起作用

来自分类Dev

Selectize.js和jQuery验证

来自分类Dev

selectize.js重新加载下拉列表

来自分类Dev

Selectize.js getAdjacentOption()如何工作?

来自分类Dev

selectize.js 占位符宽度问题

来自分类Dev

在selectize.js中使用selectize api为列表框设置默认值

来自分类Dev

selectize.js-如何禁用选定项目后的闪烁光标?

来自分类Dev

如何滑动Selectize.js下拉菜单?

来自分类Dev

如何为selectize.js输入设置值?

来自分类Dev

如何获取当前选定的Selectize.js输入项的值

来自分类Dev

如何清除Selectize.js下拉列表中的选定值?

来自分类Dev

如何更改selectize.js下拉列表的占位符?

来自分类Dev

如何使用Angular以编程方式设置selectize.js值?

来自分类Dev

selectize.js动态添加选项以进行选择

来自分类Dev

使用Selectize.js从SQL进行远程数据加载

来自分类Dev

将值加载到Selectize.js中

来自分类Dev

如何在selectize.js中设置默认值?

来自分类Dev

selectize.js远程填充其他输入

来自分类Dev

Selectize.js:如何对整数值的选项进行排序?

来自分类Dev

在Selectize.js项目中渲染角度指令

来自分类Dev

用Flask填充Selectize.js下拉列表

来自分类Dev

如何纠正Rails中的添加或选择标签(Selectize.js)

来自分类Dev

如何滑动Selectize.js下拉菜单?

来自分类Dev

selectize.js-如何禁用选定项目后的闪烁光标?

来自分类Dev

移动中selectize.js下拉菜单溢出的困难

Related 相关文章

热门标签

归档