onInitialized 如何在 Bootstrap-multiselect 中工作

How onInitialized works in Bootstrap-multiselect

非常简单的例子:https://jsfiddle.net/x6z6w0n8/8/

如何在不创建副本的情况下在初始化步骤中设置 selected 值?

来自场外的样本效果很好。 https://jsbin.com/yupinelefa/edit?html,js,console


正如我所注意到的,在非示例中它们没有初始化 select,它们只是使用事件 onInitialized。但是当我在 onInitialized 事件中初始化(设置选项)为 select 时,什么都没有改变,我也有 2 selects.


总的来说 - 我在页面上有 bootstrap-multiselect。 OnInitialization 我想在其中设置 selected 值。 我以下一个代码为例:

<select id="example-onInitialized" multiple="multiple" class="multiple">
     <option value="1">Option 1</option>
     <option value="2">Option 2</option>
     <option value="3">Option 3</option>
     <option value="4">Option 4</option>
     <option value="5">Option 5</option>
     <option value="6">Option 6</option>
</select>

$('.multiselect').multiselect({
            onInitialized: function(select, container) {
               $(select).multiselect('select', 2); // I want to select item with value '2'
         }
});

但是这个脚本创建了一个额外的 select。因此,我有一个 select,selected 值为“2”,一个为空 select。 对我来说,似乎每次调用 .multiselect() 都会创建新的 select。这样对吗?谢谢。

Updated fiddle.

发生这种情况是因为 select 是一个应始终在 .multiselect() 上调用的选项(初始化插件),因此在您的情况下,您的插件将在您需要时第二次初始化使用它。

onInitialized() is a function which is triggered when the multiselect is finished initializing.

select 选项在插件初始化后也被设置为 select 给定值,所以你可以像这样使用它:

$('.multiple').multiselect('select', 2);

希望这对您有所帮助。