Jquery select2:如何触发取消选择事件

时间:2018-01-11 10:45:33

标签: javascript jquery jquery-select2

我试图在select2选择框

上触发取消选择事件
$("select.js-example-basic-multiple").trigger({
    type:'select2:unselect',
    params:{
        data:e
    }
});

事件处理程序是这个

$('body').find('.js-example-basic-multiple').on("select2:unselect", function (e) {  
     var data = e.params.data;
     $('body').find('select.js-example-basic-multiple option:contains("'+data.element.text+'")').prop("disabled",false).end().find('select.js-example-basic-multiple').select2('destroy').select2();
});

在事件处理程序中,我使用的是e.params.data.element.text,这是默认设置。

当我触发事件时,我不知道该传递什么数据。

我试过

e = {
        'params':{
            'data':{
                'element':{
                    'text':$text
                }
            }
        }
    };

此处文字是选定的选项文字值

我收到以下错误:

  

未捕获的TypeError:无法读取属性' text'未定义的   事件处理程序

故事

最初我只有一个select2选择框。如果用户单击添加新按钮,我将在第一个select2选择框中销毁select2并克隆并追加并在两个选择框上再次应用select2 ..每次用户单击添加新按钮时都会发生这种情况。

不应在其他select2选择框中选择在一个select2框中选择的选项。 在一个select2选择框中取消选择的选项可以在任何一个其他select2选择框中选择。

每次触发选择和取消选择事件时,我都会更新选择框。

例如: 取消选择事件时触发。当手动取消选择所选选项时。

 $('body').find('.js-example-basic-multiple').on("select2:unselect", function (e) {  
      var data = e.params.data;
      $('body').find('select.js-example-basic-multiple option:contains("'+data.element.text+'")').prop("disabled",false).end().find('select.js-example-basic-multiple').select2('destroy').select2();
 });   

我的问题是新创建的select2选择框有删除按钮。此删除按钮删除整个选择框,此时我需要更新所有其他select2选择框。问题是这不会触发任何事件。我们需要手动更改它..

0 个答案:

没有答案