-FoxServアンインストール → Xamppインストール
-jQueryでformUpDn(オブジェクト化)
◆FoxServアンインストール → Xamppインストール
今のラップトップはFoxServで環境をインストールしていて、PHP4.2.2が入っている。これだとsymfonyは動かないので、新しくXamppでインストール。バージョンは1.7.2。
が、MySQLをサービスとしてインストールに失敗。
原因は・・・FoxServでインストールした古いMySQLのサービスの残骸がレジストリに残っていた様子。久々にregeditを立ち上げ。適当に怪しそうな場所を見てみると・・・
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
を発見。
削除して・・・大丈夫だよね???
不安なのでググッてみたが、よくわからず。まぁいいや。
削除して、再起動して、動いているからよし。
これでXamppが動いた。
この後、Eclipseもダウンロード→インストール→PHPプロジェクトの作成、でプロジェクトを開始しようとしたが、既存のフォルダを開けず。
めげたので、symfonyは、ひとまずやめ。
◆jQueryでformUpDn
前回作成したjQueryをOOPにしてみる。
var formUpDn = function () { ... } formUpDn.prototype.down = function() { ... }と新しいオブジェクトとメソードを定義して、オブジェクト内で、
// UPキーが押された場合の処理。 $(this.jFormElem).bind( 'keydown', 'up', this.down );とやっても、this.downなんて知りませんと起こられる。
肝心のjQueryのbind内で「this」が変わっている。
JavaScriptの特徴で、イベント発生時のスコープは、イベントが発生したDOMオブジェクトに設定されるらしい。つまりthis.downのthisはフォームの要素になってしまう、ということ(と理解してます)。
◆jQueryにスコープを追加する
どうするの?
と思いつつググルと解決法があった。
下記の「scope」という関数を追加して、不思議な呼び方をすると動いた。
jQuery.scope = function( target, func ) { return function() { return func.apply( target, arguments ); } }; formUpDn.prototype.bind = function() { // DOWNキーが押された場合の処理。 var that = this; $(this.jFormElem).bind( 'keydown', 'down', jQuery.scope( this, that.down ) ); }
これで、キーが押されると、formUpDnオブジェクトのdownメソードを呼び出すようになりました。
が、まだ動いてません。また次回の続きに。
0 件のコメント:
コメントを投稿