こんにちは、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」のスコープを設定できることはわかっています。しかし、 $.proxy を設定した後でも、「this」キーワードはまだボタン。
この「this」キーワードが「contactForm」オブジェクトを参照するようにするにはどうすればよいですか