我正在使用 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);
在第二个示例中,如果我删除 nsPASS.init(),代码会中断。如果我删除 Password: $('#Password') 代码会中断。
我可以定义对象然后在函数中立即使用它们吗?为什么第一个示例有效,而第二个示例无效?