有一个下拉式多选,我想在其中单击一个元素以将其从选定元素中删除。开箱即用的 chosen.js 显然无法做到这一点,您如何对其进行一些修改?
我尝试将标准函数绑定到元素,但没有成功。请给我提示
$("body").on("click", ".result-selected", function() {
let index = $(this).attr("data-option-array-index");
let container = $(this).closest(".chosen-container");
let select = container.prev();
if ( select != null && select.hasClass("chosen-select") ) {
console.log(index);
select
.find("option:eq(" + index + ")")
.prop("selected", false);
select.trigger("chosen:updated").trigger('chosen:open');
}
});
在原始代码中,您在取消选择后触发了 chosen:open。这可能并不总是按预期运行,因为如果在取消选择时关闭了下拉菜单,则可能不希望在取消选择后立即打开它。在大多数情况下,您会希望在进行更改后关闭下拉菜单,而不是重新打开它。
工作片段: