Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

イベントと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)の指定方法はもっと検討しないといかんけどねー。

うくく。