tkhrsskの日記

技術ネタなど

easyselectboxで動的に内容を切り替える

select要素(プルダウン・セレクトボックス)を装飾するプラグインとして、easyselectboxというものがある。

github.com

ぱっと見、select要素のデザインを加工しているだけに見えるが、実際にはselectを隠してdiv要素を新規に作っている。 なので、スクリプトでselect要素をいじるときにはちょっと注意が必要。

具体的には、下記のような注意点がある。

  • 値のイベント変化を拾いたい場合は、元々のselect要素を監視するのではなく、easyselectboxのonClickイベントを使う
  • seletctの内容(option)を変えたい場合は、selectのDOMをいじったあとに、easyselectboxを再度初期化する。(前に作ったeasyselectboxの要素は一度消す(消さないと選択要素が増殖する)。消す要素を覚えておくためにclass名を明示的に指定しておく)

Sample

サンプルとして、一つのプルダウンを選択したときに、ほかのプルダウンを動的に切り替える場合の処理を用意した。

f:id:tkhrssk:20181202233858p:plain
商品の選択

f:id:tkhrssk:20181202232622p:plain
商品に応じたサイズの選択1

f:id:tkhrssk:20181202234302p:plain
商品に応じたサイズの選択2

Source

gist.github.com

参考

ぼやき

プラグインのソースを見ると、そんなに難しいことはしていないけど、公式情報が少なくて、意図しない動作でプラグイン利用者を戸惑わせている気がする。 APIのドキュメントか、もうちょいサンプル増やしてもらえれば...と思ったけど、6年前(2012)に作られて、特にメンテされているわけではないんだね。 それなりに日本語の説明ページもひっかかるし、実際デザイナが使っていたんだけど、他にスタンダードなプラグインとかないのだろうか。