jQuery 1.7 を使用しています。名前空間がどのように機能するかを把握しようとしています。の一部を機能させることはできますが、完全に機能するとは限りません。フォーム要素が入力されると、関数 checkPasswordForm が起動し、フィールドの値を警告することを期待しています。
このフォーム要素があります。
<input type='text' id='Password'>
このコードは、名前空間を作成し、オブジェクトを作成し、関数を作成することを期待しています。
// SET NAMESPACE
var nsPASS = {
$Password: $('#Password'),
checkPasswordForm: function() {
var Password = $Password.val();
alert(Password);
}
};
nsPASS.$Password.keyup(nsPASS.checkPasswordForm);
ただし、このコードは実行されません。$Password が定義されていないというエラーが表示されます。コードを機能させるために、さまざまな方法でコードを変更しました。以下のバージョンは、期待どおりに動作します。タスクを達成するのに必要以上のコードのようです。
// SET NAMESPACE
var nsPASS = {
$Password: $('#Password'),
init: function() {
$Password = $('#Password');
},
checkPasswordForm: function() {
var Password = $Password.val();
alert(Password);
}
};
nsPASS.init();
nsPASS.$Password.keyup(nsPASS.checkPasswordForm);
2 番目の例で、nsPASS.init() を削除すると、コードが壊れます。Password: $('#Password') を削除すると、コードが壊れます。
オブジェクトを定義してすぐに関数で使用できますか? 最初の例は機能するのに、2 番目の例は機能しないのはなぜですか?