该功能不起作用,它没有将值放在“输入”中。
function example(id){
this.code= function(){$('.'+id).val(id)}
this.validate= function (){
$('.'+id).keyup(function (e){
if(e.keyCode==13) this.code();
})
}
}
体
<input type="text" class="test"/>
<input type="text" class="test1"/>
<script type="text/javascript">
var test= new example('test')
var test1= new example('test1')
test.validate()
test1.validate()
</script>
答案 0 :(得分:4)
您的keyup事件处理程序将具有不同的“this”。您可以使用bind来纠正问题
keyup(function (e){
if(e.keyCode==13) this.code();
}.bind(this))
绑定到事件时,将调用处理程序,并将“this”关键字设置为触发事件的对象,而不是创建事件的对象。
答案 1 :(得分:1)
对于这个问题,javascript有点难以理解..
这篇文章解释了其中一些http://www.crockford.com/javascript/inheritance.html 但解决这个问题的一种方法是
function example(id){
this.code= function(){$('.'+id).val(id)}
var self = this;
this.validate= function (){
$('.'+id).keyup(function (e){
if(e.keyCode==13) self.code();
});
}
}