我正在尝试强制使用open方法,并选择select2这样的项目。
$(".select").select2('open')
$(".select").on('select2-loaded', function (e) {
items = e.items.results;
if (items.length == 1) {
$(this).val(items[0].text);
}
});
$(".select").select2('close');
但是我无法进入select2加载的评估,并且关闭也发生在快速。如果列表中只有一个元素,我想默认选择第一个元素。
当'open'发生时,它会自动执行获取和加载列表中所有元素的机制。如果我评论close方法,则显示列表中的元素需要几毫秒。
但我想要的是刷新我的列表(这是通过打开完成)然后我想只选择是否有一个元素和关闭我的列表('select')
我怎样才能做到这一点?此行为将由另一个列表的onchange事件触发。 (嵌套选择)
答案 0 :(得分:7)
您应该在close
事件中移动select2-loaded
调用,因此它只会在选择项目后关闭select元素。否则你正在打开,为将来的事件设置事件,然后立即关闭。
$(".select").select2('open')
$(".select").on('select2-loaded', function (e) {
items = e.items.results;
if (items.length == 1) {
$(this).val(items[0].text);
$(".select").select2('close');
}
});