我试图在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选择框。问题是这不会触发任何事件。我们需要手动更改它..