検索フレーズで意外と多かったのが、iUIのフォームボタンに関するもの。
ソースの addEventListenter('click', function(){ ~ }) を読めば判ることなのだけど、軽く説明。
iUIは、DOM3イベントで実装する工夫をしているのか、「バブリングを利用し、findParent() メソッドを使ってイベント発生要素から任意の要素を特定する。」
以前、書いたことだけど「マークアップ構造がライブラリによって固定され、デザイナの介入を認めないからこうした実装が可能」。
iUI のフォームでは、A要素が INPUT[type="submit"]と、INPUT[type="cansel"]の代わりをする。
* INPUT[type="submit"] → A[type="submit"]
* INPUT[type="cansel"] → A[type="cansel"]
これらのA要素を特定した後、link という変数に格納されてるんだけど、
form.submit() な感じでJavaScript で動的にフォーム内容を送信してるのも特徴。
少なくとも、Eventのバブリングやキャプチャリングがわからない人は、利用を諦めたほうがいい。
iUIって、単に「ソース読もうぜ?」と言う気にはなれない難解なライブラリです。
デザイナな人は、DIV.panel 部分だけが任意のデザインを許可されていることに注意すべき。それ以外は、ライブラリの機能を殺してしまう可能性もあるので、JSerとしての知識が無いなら、まず使いこなせないと思う。
iUI のコードを読んでて思ったのが、完全に自由なデザインをやめてハードコードすべきところを増やすのが、HTML5時代のライブラリかなと。