嗨,我正在尝试学习使用 jQuery 库 1.9 在 javascript 中以更加面向对象的方式工作。我正处于一个小项目中,我必须更改这个对象的范围。这是我的 html:
<div id="contact">
<h2>Contact Me</h2>
<form action="#">
<ul>
<li>
<label for="name">Name: </label>
<input name="name" id="name">
</li>
<li>
<label for="email">Email Address: </label>
<input name="email" id="email">
</li>
<li>
<label for="comments">What's Up?</label>
<textarea name="comments" id="comments" cols="30" rows="10"></textarea>
</li>
<li>
<input type="submit" value="Submit">
</li>
</ul>
</form>
这是我的 javascript
var contactForm = {
contact : $('div#contact'),
init : function(){
this.contact.hide();
$('<button></button>' , {
text : "Display Contact"
}).insertAfter('article')
.on('click' , this.show);
},
show : function(){
$.proxy(contactForm , this)
this.contact.slideDown();
}
};
contactForm.init();
问题出在我的 show 方法上。我知道我可以使用 $.proxy() 设置“this”的范围。但我一定做错了,因为即使在 settign $.proxy 之后,“this”关键字仍然指按钮。
如何使这个“this”关键字引用“contactForm”对象