タグ

tipsとjavascriptに関するTaROのブックマーク (5)

  • IEでattachEvent/detachEventする時はthisの扱いに注意する(JavaScript) - 小窓屋めがね

    ということで、「IEさん、頼むよ...」っていう話。 JavaScriptのIE用イベントハンドラ「attachEvent/detachEvent」。これを使って呼び出したイベント内では、thisがwindowと解釈される落とし穴が。 下記のイベントをIEで実行すると、どうなるか、さっそく検証。 デモページ HTML JavaScript ボタンのラベル「送信する」がalertで返される、かと思いきや、結果は「undefined」。 これが、IEでattachEventした関数内では、「this」がwindowオブジェクトとなってしまうってこと。 つまり、detachEventもできず、はまるので注意。 じゃあ、どう書けばいいのか。 JavaScript(修正版) thisの代わりに「evt.srcElement」で、イベント発生元を取得すればよい。 と、ここまでがIEの話。 IE以

  • jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC Engineers' Blog

    最近Androidとの抗争が激化しているago(@kyo_ago)です。 jQueryはCSSセレクタを多用する特徴がありますが、jQuery内では実行ブラウザやCSSセレクタの記述によって呼び出されるブラウザAPIが変わり、それによって実行速度にも影響が出ます。 この記事では「セレクタAPIとはなにか」、「CSSセレクタの記述によって呼び出されるセレクタAPIの種類」、「高速なセレクタAPIを使用するための方法」、「高速なセレクタAPIが使われるかどうか確認する方法」などを紹介したいと思います。 (※この記事はJavaScript Advent Calendar 2011 (フレームワークコース) : ATNDの1日目の記事です) セレクタAPIとはなにか セレクタAPIとは「#hoge .huga」のようなCSSセレクタから、DOM上に存在する要素を取得するためのAPIです。 jQue

    jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC Engineers' Blog
  • 第2回 JavaScriptの関数をマスターしよう

    関数内部で利用できる特殊なオブジェクト - argumentsオブジェクト - JavaScriptの関数を利用する場合に、もう1つ忘れてはならないトピックとして、argumentsオブジェクトがある。argumentsオブジェクトは、関数の内部でのみ利用可能なオブジェクトで、関数に渡された引数値を管理することができる。 ■JavaScriptは引数をチェックしない argumentsオブジェクトは、具体的にどのような局面で利用すればよいのか ―― それを解説する前に、まずは以下のコードをご覧いただきたい。 function display(msg) { window.alert(msg); } display();              // undefined [A] display('山田');        // 「山田」と表示 [B] display('山田', '掛谷');

    第2回 JavaScriptの関数をマスターしよう
  • IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念

    おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て

    IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
  • JavaScriptのデバッグTips - os0x.blog

    JavaScript Advent Calendar 2010 8日目担当のid:os0xです。 JavaScriptネタは案外範囲が広くて色んなネタがあるので、毎回が楽しみですね。 さて、私はデバッグをネタにしたいと思います。テストではなくデバッグです。誰かが書いたコードをメンテナンスしなきゃー、とか。jQueryプラグイン導入しようとしたけど、なんかうまく動かないーみたいなケースのおはなしです。 JavaScriptのデバッグは大変なので、多くの方が日々苦労されていると思います。なぜJavaScriptのデバッグが大変なのか少し整理してみましょう。 ブラウザ依存 まず、なんといってもJavaScriptはウェブブラウザ上で実行されるので、環境が一定ではありません。特定の環境だけを対象にJavaScriptを書くことは滅多にありません。PC向けではIE、Firefox、Chrome、Sa

    JavaScriptのデバッグTips - os0x.blog
  • 1