私のプロジェクトには、プロトタイプ1.7.1を使用するこのコードがあります。
var Worker = Class.create({
initialize: function() {
this.ap = $('ap');
alert( this.ap.value );
$( 'main-form' ).on( 'change', '.inputs', this.recount );
this.ap.observe( 'keypress', this.recount );
},
recount: function() {
alert( this.ap.value );
}
});
document.observe('dom:loaded', function(){
var w = new Worker();
});
の項目はid="ap"
、フォーム内のテキスト入力フィールドです。上記のクラス初期化子の内部で、#ap
要素が見つかり、this.ap
メンバーが割り当てられます(アラートは正しい値を示します)。
ここで、#ap
入力値を変更すると、イベントによってrecount
呼び出されたメソッドでエラーが発生します-未定義です。この入力の外側をクリックした後、フォーカスを緩めるために、イベントによって呼び出されたメソッドは正しく機能します(割り当てられています)。keypress
this.ap
recount
change
this.ap