イベントとCSSセレクタの件
何度も言うけどイベントなんです。
Ajaxはイベント駆動なアプリケーションを作成するインフラなのです。
という事言ってみる。
で某所で話題なCSSですがその方が良いのかな?
(パッと見てGizaを思い出したけど)
うーん、このへんは使用者の感覚なので良い案があればてっ感じです。
一応$cssみたいなのはちょと考えてた。
$css('.hoge li');
でnodeListが返ってくるみたいな。
気になってたのは
例のド頭がclassであった場合の引っ張る際のパフォーマンス
ここだけ。
気にしないのであれば多分簡単にできる。
あとイベントの指定はelementのprototypeが使えねーとか頭を悩ませてたけど単純にラッパー提供してそれを使用して貰えればいいだけなのかも。
(低レベルAPIは使いにくくて当たり前と言いたくはないけど)
今持ってる資源はFunctionを主にしているので
function click_test(event, element){ alert(element.name); } click_test.bintToDOM('test_node');
のような指定だけど
(指定したidのnodeにのclickイベントに割り当て)
function click_test(event, element){ alert(element.name); } click_test.bindToCSS('.hoge li');
とかはできそう。
でもっと隠すとこんなんかな?。
function click_test(event, element){ alert(element.name); } Kumu.Event.regist('.hoge li', click_test);
あるいは
function click_test(event, element){ alert(element.name); } var arg = { '.hoge li':click_event } Kumu.Event.regist(arg);
とか。
(例のごとくどんなイベントへ割り振っているかは関数名で)
別にclickだけでなく全てのイベントを拾うやり方もあるんだろうけど
(ma.laさんとこにあったbodyを監視する奴)
パフォーマンス的にどうなのかなと。
他にもネタで
function I_test_click(event, element){ alert(element.name); } Kumu.Event.regist(I_test_click); function C_hoge_N_li_click(event, element){ alert(element.name); } Kumu.Event.regist(C_hoge_N_li_click);
で一発でいくとか。
function Event_I_test_click(event, element){ alert(element.name); } function Event_hoge_N_li_click(event, element){ alert(element.name); }
って書いてEventって名前の関数をthisから探して自動登録とかね。
個人的にはWindows屋の感覚で
Object名(DOM)_イベント名
でいけるといいかなと。
なんとなくイベント駆動アプリって感じするじゃない?
Object名(DOM)の指定方法はもっと検討しないといかんけどねー。
うくく。