2010-03-26(金) [長年日記]
■ tDiary: 更新ページと設定ページにjQuery
というわけで(どういうわけで?)、なんとなく勘どころがわかってきたので、tDiaryの更新ページと設定ページにjQueryを読み込むようにした。googleapiから1.4の最新を持ってくるようにしてある。あと、jsディレクトリを掘って00default.jsを設置(まだ中身は空っぽ)。
まずは日記更新時や設定変更時のUI改善に取り組みたい所存。
なお、日記表示ページにはまだ入れない。あんまり動的ページにする意味なさそうだし、そういう細工を入れすぎるとSEO的にも不利だし。もっとも以前から、リンク元はAjaxにすべきだという話もあったので、考えどころではある。
2010-03-24(水) [長年日記]
■ Webkitではイベント系の属性をJavaScriptから書き換えられない(の?)
最近まじめにAjaxプログラミングを始めてですね(今ごろかいな)、jQueryで楽ができる時代から始めるとハードル低くていいっすよ、ホント。
で、だいぶ前から自分の浪費っぷりを可視化しないといかんなーと思っていたので、それを題材に「単に使ったお金を記録するだけのWebアプリ」を作ってみている。GETでデータを取ってきて、POSTでデータを投げるのでいい題材。これをiPhone用のビジュアルにすれば、日常的に使えるだろう。たぶん自分にしか実用性がないけど、ソースはgithubにて(→paymemo)。サーバサイドでいまだに「require 'cgi'」とかしてるのをなんとかしろって感じだが。もちろんドキュメントはない。
Firefox上での開発はまったくスムーズでたいした困難もなかったのだが、これを肝心のiPhone上で実行すると追加ができない。Ajax使ってるはずなのに画面遷移が起きちゃう。試しにChromeでやってみたら同じ現象なので、Webkitだけの問題らしい。
いろいろ(中略)調べてみたところ、Submitボタンにあとから「onclick」を追加していたためだとわかった。WebkitだとこれがDOM上に反映されない。onclickを食ってなければ画面遷移が起きるのは当たり前やねぇ。ChromeにもFirebugが提供されてて助かった。他にも、formにonsubmit属性を追加しようとしてもダメだったので、Webkitではイベント系の属性は操作できないのかな。
こういう非互換情報がうまく見つけられないのは、たぶんもう、誰もonclickとか使ってないからかも知れない。当然、回避策はbindを使ってイベントハンドラを登録する方法なわけで、jQueryではこっちが主流なんだろう。なお、わざわざイベントハンドラを動的追加しているのは同じページ内に複数のお財布を置きたいからなので、「初めからonclickをハードコーディングしておけば?」というのはナシ(やればできるのはわかってるけど)。
で、さっそく使い始めてはや数日。想定どおり自分の浪費っぷりが目に見えて、かなりビビっているのであった。いやー、これは良くないな。ひどいものを作ってしまった。
2010-03-23(火) [長年日記]
■ 川崎 4-0 メルボルン@等々力競技場
3日前に0-4で負けたチームが、4-0で勝つとはなぁ。少なく とも前半は別のチームみたいだった。
一人少なくなった後半は押される場面も多かったけど、よくしのいだ。 今回も監督の決断が遅くて、見ている方はヒヤヒヤしたけど。というか、 こういう試合は、早めの交代がセオリーじゃないのかよー、高畠さん。
◆ os0x [jQueryのattrは内部的には色々やってますが、 .attr('onclick','return addNewI..]
◆ ただただし [うわ、わざわざコードまで追っていただいてありがとうございます! イベントを文字列として設定すると再解釈してくれない..]
◆ os0x [element.onclick = element.setAttribute('onclick', の違いです。前..]
◆ ただただし [いろいろ試してみて理解しました(まだ「なんとなく」ですけど)。 DOMに反映されるからといって優先されるわけでもな..]