2009年5月25日月曜日

JavaScriptのイベント処理の書き方

1.HTMLタグ内の属性として記述する

  
Click


この書き方だとメンテナンス性が落ちる、あと1つのイベントしか処理できない

2.elementオブジェクトのonXXXXに関数を定義する

document.getElementById("btn").onmousedown = funciont(evt) {
evt = evt || window.event;
・
・
・
}

1と同様に1つのイベントしか処理できない

3・addEventListener(IEではattachEvent)を利用する

document.getElementById("btn").addEventListener('click', goFunc, false);
function goFunc(evt) {
evt = evt || window.event;
・
・
・
}

複数のイベントを処理できる

DIV要素の移動

2秒毎にDIV要素を下方向に10px移動させるJavaScirpt


var timerID;
$('runBtn').onmousedown = startDown;
$('stopBtn').onmousedown = stopDown;

//2秒ごとにgoDown()を実行
function startDown(){
timerID = setInterval("goDown()", 2000);
}

//Interverl処理をキャンセル
function stopDown() {
if (timerID) clearInterval(timerID);
}

function goDown() {
//offsetTopは親の座標軸を基準とした座標を返す
//offsetTopはreadOnlyのため
//div要素の座標変更にはstyle.topに代入する

//staticではstyle.topは無効のため、absoluteにする
$('boxA').style.position = "absolute";
$('boxA').style.top = $('boxA').offsetTop + 10 + 'px';
}


2009年5月22日金曜日

ブラウザのJavaScriptコールスタックサイズ


Safari3はスタックサイズがなんでこんなに少ないんだろう?
JavaScriptエンジンがNitroになったSafari4ではどうなのか

  • IE7 (1,789)
  • Firefox3 (3,000)
  • Chrome1 (21,837)
  • Opera 9.62 (10,000)
  • Safari 3.2 (500)
  • 2009年4月14日火曜日

    CSS Naked Day (4月9日)

    5日前のことだけど
    こんなイベントをやってるサイトがあった
    CSS Naked Day
    イベントはCSSを無効にして、XHTML/HTMLの適切なマークアップがされているか
    を知ろう!という意味でやっているらしい



    ECMAScript Language Specification 5th edition (JavaScript2.0)


    ECMAScript Language Specification 5th editionが公開された

    ECMA

    MYCOM: ECMAScript 10年ぶり改訂、JavaScript 2


    2009年2月3日火曜日

    Google Chrome 2.0.159

    Google Chrome2.0.159で、日経のサイトが見れない。
    一瞬表示されてるのだけど...CSSの処理が変わったのかな?
    それともFlashと関係しているのかなー
    他にもFlashを多用しているサイトでみれないところがあるので



    2008年6月19日木曜日

    Hibernateメモ

    HibernateのHQLでDate(日付)をWhere句に入れて検索する場合
    setDate()を使って値をバインドすると
    バインドしたDate型の時刻(HH:MI:SS)が00:00:00にリセットされてしまっている様子(推測)

    setTime()を使ってバインドするとリセットされずちゃんと比較

    例えば
    --------------------
    hoge | 2008/6/19 10:00:00
    --------------------
    というデータをSelectする時に
    from hoge where date <= :fromdate
    で
    Date型の2008/6/19 11:00:00という値を
    setDate()でバインドすると、時刻がリセットされ
    2008/6/19 00:00:00
    で比較になりSelectされない