2009年01月19日18:15 カテゴリLightweight Languages javascript - block代わりのclosureとその問題 リハビリに手頃な問題だったので。 これ、実は「Java開発者のためのAjax実践開発入門」でも紹介されている書き方。 for 文と無名関数のイディオム - IT戦記 というわけで、これをすべて解決するのが for (var i = 0, len = list.length; i < len; i++) (function(node, i) { var text = node.textContent; node.onclick = function() { alert(text) }; })(list[i], i) なのだ。 ただし、コメント欄に残された問題が残る。 自分でも検証してみた。 n = : これ、デフォルトでは100万回にして
id:cho45 がチョロっと書いたコードが話題になっている 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech このような書き方は、自分もたまにする。 というわけで、この書き方をする利点を以下の順に解説して見る。 単純な for 文の問題点 with 文を使った解決方法と、その微妙な問題点 無名関数を使った解決方法 単純な for 文の問題点 まずは、以下の HTML に対して <ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> 以下の JavaScript を実行して var list = document.querySelectorAll('ul > li'); for (var i = 0, len = list.length; i < len; i++) { var node = list[i]; v
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
static - 素人がプログラミングを勉強していたブログ Big Sky :: Re: static - 素人がプログラミングを勉強するブログ ベンチは面倒なので dis 結果だけ。 [print(RegExp(n+1)) & dis(x) & print() for([n, x] in Iterator([ function f(r)'i'in(r=/_/)?++r.i:r.i=0, (function g(s)function f()s++)(0), function (r)++(r=/_/).i||(r.i=0), function f(r)++f.i||(f.i=0), function f()f.i=f.i+1|0, function f()~(f.i=~-f.i), function()/_/.lastIndex++, ].map(function test(x){ if(x
これは便利。 var counter = function () { var static = /(^o^)/; return ('i' in static)? ++static.i: static.i = 0; }; console.log(counter()); // 0 console.log(counter()); // 1 console.log(counter()); // 2 console.log(counter()); // 3 正規表現リテラルは毎回解釈されるわけではなく、一度作られると同じオブジェクトが使われるのでstatic変数のような挙動をする。だから、RegExp#lastIndexとかを直接弄る時はよく気をつけないといけない。
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
IE5,IE5.5,IE6,IE7 とおよそ10年に渡り、実装されなかった機能の一つに、Dataスキーム(DataURI) が あります。 uupaa.js version 0.6(近日中にリリース予定)では、DataURI をデコードする機能をエミュレートします。 DataURIって何 ラリーさんがRFC2397で提唱したデータスキームのこと。 ラリーさんってのはこの人。スパタさんにも見えるけどたぶん違う。 平たくいえば、 HTMLファイルに小さなアイコンや 1x1ドット のスペーサーを文字列化して埋め込める。 サーバとネットワークにやさしい仕様。 テキスト + アイコン数個で構成されるページなら、HTMLファイル1個だけで完結することもできるのが魅力。 # 小さな画像をチョコチョコ取得するのって、コスト高 # 負荷軽減の別解としては、小さな画像を1ファイルに敷き詰めて、CSS + cl
This domain may be for sale!
更新履歴 2010-01-21 本エントリの内容も含めた最新の情報は下記エントリをご参照ください。 jQuery の位置・サイズ関連メソッドまとめ - Cyokodog::Diary サイズの取得 煩雑になるので height の記述しかありませんが、width に置き換えれば幅もとれます。 普通のボックス要素 height() メソッドで取得できる値には、padding や border の分の高さを含みません。 CSS の height と同じなので、css('height')メソッドで取得してもよさそうですが、こちらの場合ブラウザの種類や CSS の定義の仕方で取得される値が異なる(クロスブラウザとしての機能が完全でない)ので、純粋に px 単位の高さを取得したい場合は height() メソッドを使用した方が無難です。 スクロールバー付きボックス要素 clientHeight には
今更 IE8 の話なんて遅れてる感満載な訳ですが、IE8 からは onhashchange イベントと言う location.hash の値が書き変わったら発火するイベントが出来ました。onhashchange イベントについては下記参照。*1 winow.onhashchange - Thousand Years hashchange - Event reference | MDN で、これなんですが location.hash にアプリケーションの状態を保持したいなんて言う、"えいじゃっくす" 的なコンテンツの場合、かなり使えるじゃないすかと。*2 クロスブラウザで行けるかもなーと思って試しに書いてみました。まだ作りかけ。 ソースコードと解説 (function() { var createEvent = function() { var evt; if (document.creat
A Brief Introduction in English JSplash is a conversion tool, that converts SWF movies to javascript. Converted script renders shapes with SVG and rewrites ActionScript dynamically to run on browser's JS Engine. You can see a demonstration at http://www.libspark.org/svn/ruby/jsplash/trunk/client2/demo_20081001.xml Left one is a screenshot of the movie running on JSplash. And right one is running o
as, box2dワリオランドシェイクと YouTube のコラボプロモーション が面白かったので、似たようなものを作ってみました。次の文字列をコピーしてアドレスバーに突っ込むと、HTML が崩壊します。javascript:(function(){var d=document; var s=d.createElement("script"); s.charset="UTF-8"; s.src="http://tech.nitoyon.com/meltdown/meltdown.js?"+(new Date()).getTime(); d.body.appendChild(s)})();崩壊するのは画像だけなので、画像があるページで試してみてください。このブログだとこんな具合。画像はドラッグすることも可能です。あまり画像が多いと重くなりすぎるのでご注意を。仕組みFlash と JavaSc
Ex DOM Storage の中の実装ですが、結構苦労したので折角だから解説しちゃうぞ的なエントリです。 なので興味のある人以外にはだいぶニッチですw Ex DOM Storage の技術的概観 簡潔に書いてしまうと以下の二点につきます。 データの格納先は userData behavior Storage オブジェクトの実態は script 要素に適用した element behavior userData behavior とは? userData Behavior とは、IE が標準で用意しているクライアントサイドストレージです。 使い方は非常に簡単で、 element.addBehavior("#default#userData"); element.load("myStorage"); element.setAttribute("myData", "blah blah"); e
437152 – implement worker threadsを使ってみる。 var thread = navigator.newWorkerPool(); thread.createWorker(function(){ setTimeout( clearInterval, 1000, setInterval(postMessageToPool, 5, "thread1")); }.toSource() + "()"); thread.createWorker(function(){ setTimeout( clearInterval, 1000, setInterval(postMessageToPool, 5, "thread2")); }.toSource() + "()"); thread.messageListener = function(message){ console
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く