WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート 2011年07月

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

スマートフォン向けのjavascriptを書いていてちょっとはまったので書いておきます。
クリックしたらただalertを出すだけの簡単なスクリプトです。
マークアップが


UPPER

LOWER

こんな感じでjavascriptが

document.getElementById("upper_button").addEventListener("touchend", function(e){
alert("upper");
}, false);

document.getElementById("lower_button").addEventListener("touchend", function(e){
alert("lower");
}, false);
こんな感じです。

androidは大丈夫でしたがiPhone(4.3.4)ではボタンを交互に押したとき、前のイベントが実行されてしまいます。

問題はalertを出していることです。touchendとalertが干渉しているみたいです。
こういう時のおまじない

document.getElementById("upper_button").addEventListener("touchend", function(e){
setTimeout(function(){ alert("upper"); }, 0);

}, false);

document.getElementById("lower_button").addEventListener("touchend", function(e){
setTimeout(function(){ alert("lower"); }, 0);
}, false);
setTimeoutを使うと、touchendの処理を待ってから、alertを呼んでくれます。timeoutは0でOKです。

    このエントリーをはてなブックマークに追加

まず、findコマンドでファイルのリストを取ります。結果をパイプでコピーコマンドに渡しますので、相対パスでリストしたいので、コピーしたいソースのディレクトリに入ります。

また、リストにディレクトリが含まれると、再帰的にコピーしてしまい、取り除きたいディレクトリもコピーしてしまうので、-typeを指定してファイルのみ検索します。

ディレクトリを取り除くのは、-regexを使用します。-nameはファイル名に対するパターンです。複数取り除きたいときは-regexを繰り返し使用できます。


cd /path/to/src/dir
find ./ -type f -regex '\./path/to/except/dir1/.*' -regex '\./path/to/except/dir2/.*'
この段階で一回コマンドを実行して、期待するファイルをリストアップしてるか確認するといいでしょう。

コピーですが、cpコマンドは全てのファイルを指定したディレクトリ一箇所に集めてコピーしてしまうので、階層構造を保てません。そこでcpioコマンドを使います。

find ./ -type f -regex '\./path/to/except/dir1/.*' -regex '\./path/to/except/dir2/.*' | cpio -pdv /path/to/dest/dir
cpioのオプションの意味は

cpio --help
で見ることが出来ます。

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。