jQueryのプラグインであるMultiple Selectの選択肢の幅をautoにする方法を書きます。
ただソースを書き換えるので、もしかするとあまり良くないのかもしれません。
使用したmultiple-selectはv1.6.0です。
単刀直入にいうと、multiple-selectのリポジトリでissueしてくれた方が、書いていた方法を使います。
https://github.com/wenzhixin/multiple-select/issues/576
書いてある通りですが、僕の場合はCDN先のソースをローカルに取ってきて、下のように書き換えて、
multiple_select.js
- this.$drop.find('.multiple').css('width', "".concat(this.options.multipleWidth, "px"));
+ this.$drop.find('.multiple').css('width', this.options.multipleWidth);
使用する際に、下のオプションを設定してあげると、要素の幅に合わせることができます。
sample.js
multipleWidth: "auto"
また、あわせてstylerオプションで最大の幅を設定してあげると、よりきれいになると思います。
sample.js
styler: function(row) {
return 'max-width: 150px'
}
issueしてくれた方も書いてますが、幅が静的にpxで固定されているようですね。ただ、もしかすると何か理由があって固定しているのかもしれません。
こうしたプラグインを公開してくれたり、issueを残してくれるのはすごくありがたいですね。