![http://webcake.no003.info/webdesign/jquerymobile-todoapp-sample.html](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)
pagebeforecreateのイベントで、getJSONしてから、listview("refresh")してたんですが、getJSONの結果をlocalStorageに突っ込んで、次回以降はlocalStorageから取れば良いよね。 と思ってた時期が僕にもありました。いや、今もそう思ってるんですが、ハマったので晒しておく。 元のコードはこんな感じでした。 $("#hoge").live("pagebeforecreate", function(event) { $.getJSON("sample.json") .success(handleHoge) .error(handleAjaxError); }); var handleHoge = function(data) { $.each(data.items, function(i, item) { $("<li></li>").t
※各メソッドにかいてある[条件]ってのは、タグ名やid、クラス名を指定するってことです。 条件を入れると、条件にあったものだけが取得されるようになります。 例:$(elem).parent("div.class-name, #id"); 通常のJavaScriptでの要素取得方法は→[JavaScript] 親要素・子要素・兄弟要素の取得方法 ■親要素の取得 □parent([条件]) 親要素の取得。 すぐ上の親要素のみ。さらに上の先祖要素にはさかのぼらない。 $(elem).parent("div"); 親要素がdivだったら親要素が取得できる。divじゃなければ空。 □parents([条件]) parent()と違い親より上の先祖要素までさかのぼる。 $(elem).parents(".class-name"); class-nameというクラス名がついた先祖要素のみ取得 □clos
この写真は、アーミーナイフの名門ウェンガー社のジャイアントナイフという最高級ナイフである。141の機能を持つ、ギネス認定もされた厚さ24cm、重量1.3kgの世界で最も高機能なナイフだ。トップメーカーが自社製品の全機能を1つに集約したこの製品こそが、機能拡張の行き着く先を指し示している。 なぜ適切な機能追加であっても、機能を追加しつづけることで破綻をするのか?本エントリは、「スマホUI考(番外編) 顧客やユーザーの要望に全て対応すると、アプリは99%破綻する」の続きになる。 本エントリでは以下の4つの側面から、機能を追加するリスクを考える。まず第一に「選択肢の数が必ずしも善ではないこと」。次に「人間の判断力は使うほど消耗すること」。そして「画面スペースが有限のリソースであること」。最後に「どんなに機能を増やしても、一画面で強調できるものは限られていること」。これらの4つは全て、機能追加が最
顧客や上司、ユーザーの場当たりな要望に対応しつづけると、どんなアプリもゴミアプリになる。たとえそれが理にかなった要望であっても。 なぜなら面積の限られたスマホでは「一画面の機能数とボタン数」が、使い易さと品質に深くリンクしているからです。 ということを、エラい人にプレゼンするのがお仕事の今日この頃。でも毎回毎回、同じことを説明するのがシンドイので資料をブログにまとめたいなぁと思うなど。 思考実験として、ここでは架空事例としてTwitterアプリを例に考えてみる。 何かの間違いで、日本の大手メーカーがTwitterを買収すると・・・UIデザイナーが体を張らないと99%ぐらいの確率でこうなるのです。 ここがオリジナル Request1: ダイレクトメッセージをトップ階層に ユーザーからの真っ当な要望。実際にはサービスの本質ではないのですが、要望はかなり多いはず。 ただTwitter社的にはme
★2014.3.18追記あり Android 4.1のAPIが公開されましたね! お仕事でC2DMを使おうとしていた矢先に、 Android Cloud to Device Messaging (C2DM) is deprecated. http://developer.android.com/guide/google/gcm/c2dm.html というわけで、C2DMの進化版、GCMを使ってみました。 基本的な使い方はC2DMと似てるので、移行はそんなに難しくなかったです。 一から作るのも、 GCM: Getting Started ここの手順をなぞればさくっと出来る感じです。 僕はさくっと出来なかったので備忘録かわりに書いておきます。 Sender IDを取得 Google APIs Console page Google APIs ConsoleでGCM serviceをONにします
3章 属性、CSS操作 この章で登場するメソッド一覧です。 属性操作 .attr() .removeAttr() クラス操作 .addClass() .removeClass() .toggleClass() .hasClass() CSS操作 .css() 幅、高さ操作 .width() .height() innerWidth()、.innerHeight() outerWidth()、.outerHeight() スクロール .scrollTop() .scrollLeft() 座標位置 .offset() .position() 属性 属性とは、そのタグの中に書かれている部分で、例えば、<a href="xxx" target="_blank"> の場合、href="xxx" とtarget="_blank" が該当します。hrefやtargetが名前(キー)で、xxxや _bla
2013/07/17追記 @yutakikuchi_です。 ※本記事の内容より詳しいものを書きました。 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記 概要 Mysqlからアプリケーションで日付情報を引くときDate型<=>Timestamp型の変換を行う事がしばしばある。 今日はPHP/Python/JavascriptのDate/Timestampの型変換についてまとめる。 Javascriptの例ではSpiderMonkeyを利用している。 Date型の日付を出力する php <?php //現在時刻をDate型で出力 //date関数を使う場合 echo date("Y-m-d H:i:s") . "\n"; //結果 2011-10-14 00:00:00 //strftime
こんにちは。hnwです。今回はSQLの話題です。SQLで、TIMESTAMP型(MySQL で言えばDATETIME型)のカラムに未定義値の意味で「0000-00-00 00:00:00」という値をセットする人が居るかと思います。でも、これは止めた方がいいんじゃないでしょうか、という話題です。 標準SQLについて 私の手元に『標準SQLガイド 改訂第4版』というSQL/92の解説本があるのですが、「17.3 日時」によれば、TIMESTAMP型で扱える範囲は0001-01-01 00:00:00から9999-12-31 23:59:61.999までとなっています。つまり、標準SQLのTIMESTAMP型を考えると0000-00-00の扱いは未定義ということになります。 PostgreSQLについて PostgreSQLのTIMESTAMP型に関して言うと、標準SQLを超える範囲の年も扱える
HOME JavaScript入門 変数2,定数 前回は変数の宣言と単純な用い方を説明しました。 しかし「変数」という名の通り、変数の中身は変更可能です。 このページではその方法について見ていきます。 また、変数に対して定数というものも存在します。 こちらは中身が変わらないものを格納します。 定数については注意点もあるので、それらを踏まえて解説します。 変数の中身を変えてみる 変数に値(数字や文字)を入れるには、「=」を用いるということを話しました。 これは代入でした。数学のようにイコール(等しい)では無いので気をつけましょう。 ではHTMLのbody内に以下のように記入してみて下さい。 <script> var n; n = 1; document.write( n + "<br>" ); //結果は1 n = n + 2; document.write( n + "<br>" );
目次 論理演算子 複数の条件式(trueとfalseの値を取る)を組み合わせて、1つの論理式を組み立てるために、次のような論理演算子を使う: 論理演算子を複数使った論理式では、式をカッコ ( と ) で囲んで意味をはっきりさせること。
Gmailのフィルタの振り分け機能、 ・Aさんから来たメールには「Aさんラベル」というラベルへ放り込む ・いらないメールなどを最初からゴミ箱に放り込んでおく 等々、振り分けルールが明確なのであればかなり便利です。 一々自分で手でラベルに張り替えたり移動したりしなくても、勝手にやってくれます。 そんなフィルタ機能ですが、来るメールのたびに作っていけば、だんだんとフィルタが増えていき、把握できなくなって来ます。 というわけで、複数あるフィルタをまとめたいと思い始めました。 例えばアマゾンと楽天の買い物に使っているフィルタが2つあって、それぞれ「買い物」というラベルに自動的に放り込む設定にしている。 この二つのフィルタを一つにまとめたいと。 メールアドレスの部分をspaceキー挟めばできるかな? と思ったけど動作せず。 そういえばspaceだとand検索になるのか じゃあor検索だ、と間にorを
■ ខ្ញុំបានធ្វើវាជាយូរមកហើយ! វាគឺសម្រាប់អ្នកចាប់ផ្តើមដំបូង! 【匿名さん】 (01/23 16:15) ■ タコ狩り楽しいです。 【ドラクエ好きさん】 (06/15 11:09) ■ タコさんにはお世話になりました!復帰したら真っ先に行こうかな(多分 【カナハさん】 (10/30 19:30)
MySQLの仕様 MySQLの日付をあらわす型にはTIMESTAMP型とDATETIME型があります。(DATE型もありますが…) 詳しくはMySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.1 DATE、DATETIME、および TIMESTAMP 型に記載されてます。 で、今日はじめて知った事↓ 型 サポート範囲 TIMESTAMP '1970-01-01 00:00:00' 〜 2037 年の一定の時点 DATETIME '1000-01-01 00:00:00' 〜 '9999-12-31 23:59:59' 型 消費バイト数 TIMESTAMP 4バイト DATETIME 8バイト MySQLのTIMESTAMP型は、4バイトで保持できる一定の期間しか保持できないんですね。 試しに TIMESTAMP型とDATETIME型のカラムを持つテストテーブルを作
ずいぶん以前にセレクタについて書いたのですが、今回はセレクタの種類を抜粋して、記述例と説明書きにまとめてました。「セレクタとは?」という方は、まず下記記事を読んでみて下さい。 jQueryを使ってみよう。(基本編 セレクタ1) +αというのはトラバース(走査)系のメソッドです。「この要素を抜き出したい!」と思ったときにセレクタだけでは抜き出しにくい場合があります。そういうときにトラバース(走査)系のメソッドを使うと、簡単にできたりするので覚えておくと便利なものです。 「こういう書き方をすると、こういう要素が選択される」という例で説明を添えていますが、数が多いので説明書きは、ほんとうに添えた程度です。説明だけではわかりにくいと思うので動作サンプルを用意しました。動作サンプルを眺めながら、ちらっと説明書きをチェックしてもらえれば「なるほど!」となるはず。。。ご利用ください。 jQuery セレ
1:以下、名無しにかわりましてVIPがお送りします:2012/06/14(木) 17:40:34.23 ID:oA7e/OWw0 似てる 2:以下、名無しにかわりましてVIPがお送りします:2012/06/14(木) 17:40:55.21 ID:5JAACnCKi 可愛い 以下、名無しにかわりましてVIPがお送りします:2012/06/14(木) 17:41:19.92 ID:EvfPk7I20 可愛いなおい 6:以下、名無しにかわりましてVIPがお送りします:2012/06/14(木) 17:41:48.37 ID:ZFa5tRFui え?マジで可愛いな 7:以下、名無しにかわりましてVIPがお送りします:2012/06/14(木) 17:41:56.24 ID:GOczC06zi ガッキーにしか見えん 双子なの? 8:以下、名無しにかわりましてVIPがお送りします:2012/06/
1: 以下、名無しにかわりましてVIPがお送りします 2013/08/05(月) 10:48:49.32 ID:HRZsJjFqT かわいい 8: 以下、名無しにかわりましてVIPがお送りします 2013/08/05(月) 10:52:25.76 ID:B3/o2IeP0俺のフォルダが火を噴きたがってるんだが・・・ 9: 以下、名無しにかわりましてVIPがお送りします 2013/08/05(月) 10:53:11.17 ID:4Y1iFFZB0>>8 お願いします 割とマジです 13: 以下、名無しにかわりましてVIPがお送りします 2013/08/05(月) 10:57:17.82 ID:B3/o2IeP0いっくで~ 15: 以下、名無しにかわりましてVIPがお送りします 2013/08/05(月) 10:58:22.64 ID:WK3QWEIk0>>13 うぉぉぉぉぉ、! 5: 以下
こんばんは、週末はHTML5で音声の録音を調べて、デモサイトを見つけて、息子と一緒に遊んだkjunichiです。 Jsdo.itで2012年を振り返る作品をあれこれ作っていたのですが、 その中でココログの記事を振り返るものも作っていました。 今年の12月でこのブログも10年目となることもあり、 これまでの記事の一覧を取得しようとを作っていました。 しかし、なぜか2013年1月の記事だけエラーとなってしまい。 調査にえらく時間を取られてしまいました。 原因は\u2028という文字 \u2028がJavaScriptの文字列中に含まれるとJSONPとして 返却した時にブラウザ側でエラーとなってしまうようです。 今回は、この文字が含まれていたら削除して対応しました。 editHtml = editHtml.replace(/\u2028/g,"");
半日以上かかってしまった! JSONPで返却する文字列に\u2028が含まれているとブラウザで 扱えない模様。 任意のURLを指定するとその内容をJSONPで返していたのだが、 特定のページがなぜかエラーとなってしまい、原因に時間がかかった。 JSON.stringifyすりゃ、デコード絶対出来るものと思い込んでいた ちなみに、JSON.stringifyしてJSONPで返す文字列を作成していたので、 余計に時間がかかった気がする。 どんなエラーが出るのか? Chromeでは
橋本です。 今回は、Monacaのアプリケーションで、端末に永続的なデータを保存する方法を紹介したいと思います。 Monacaはベースの技術としてPhoneGapを使用しているのですが、PhoneGapの提供するlocalStorageを使用することで、簡単にデータを端末上に保存することが可能です。 localStorageはwindowオブジェクトのプロパティなので、ソースコード上では、window.localStorageとわざわざ書かずに、localStorageとして使用することが出来ます。 localStorageは保存したい値に対してキーを指定して保存するタイプのデータベース(KVS)となっているため、データを保存する際には、保存したい値とキーを指定する必要があります。 データを取得する際には、データを保存する際に使用したキーを指定することでデータを取得することが可能となってい
iOS 4, 5, 6は問題なく取れる。 Android 2系はnavigator.onLineが設定の「機内モード」へ変更した場合のみ取れる。 (通常の回線切断に連動しない) Android 4.1は手元の機種ではWebView上で「navigator.onLineが常にtrueになる」問題があった。 (これは機種、WebViewを呼び出しているアプリの問題の可能性もある) これに対しては以下のJSで対応した。 (function () { if (!navigator.userAgent.match(/Android/i)) { return; } if (!navigator.__defineGetter__) { return; } var onLine = true; var timeout = 0; navigator.__defineGetter__('onLine', fu
HTML5でiPhone用Webアプリをオフライン対応に:iPhoneで動かす業務用Webアプリ開発入門(5)(1/2 ページ) モバイルWebアプリはオフライン対応が必須! いよいよ最終回の今回は、「Application Cache(アプリケーションキャッシュ)」を使います。 HTML5で導入されたアプリケーションキャッシュを使うと、WebアプリをWebブラウザのキャッシュに載せてオフラインで利用できるようになります。特に、前回の「HTML5のlocalStorageでiPhone用Webアプリを高速化」で紹介したHTML5の「localStorage」と組み合わせると、一度ダウンロードしたデータについては完全にオフラインでアプリが動作するようになります。 オフラインでの利用に対応して、3G回線など接続が安定しない環境でも業務用Webアプリが快適に使えるようにしてみましょう。 「キャッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く