问题:function的定义和声明,在对象里面的函数不初始化吗?
<script type="text/javascript">
function fousFun(id){
$("#"+id).focusin(function() {
$("#"+id).val("");
});
}
function fousOut(id){
$("#"+id).focusout(function() {
$("#"+id).val("找人");;
});
}
var header={
topHtml:function(){
return '你好:<input id="inputId" name="inputName" value="找人" onfocus="fousFun(this.id);" onblur="fousOut(this.id);" />';
},
init:function(){
$("body").append(this.topHtml);
/* $("#inputId").focusin(function() {
$("#inputId").val("");
});
$("#inputId").focusout(function() {
$("#inputId").val("找人");
}); */
}
};
header.init();
</script>
将两个函数放在对象header里,老说未定义,主要的原因是定义的函数有作用域,而调用函数的位置在body里的标签的onfous函数,此时调用的是window对象的函数,而不能调到header里的方法。
如果在header里使用绑定函数的方法可以调用header里的方法,例如如下:
<script type="text/javascript">
var header={
topHtml:function(){
return '你好:<input id="inputId" name="inputName" value="找人" />';
},
fun1:function(){
$("#inputId").val("");
},
fun2:function(){
$("#inputId").val("找人");
},
init:function(){
$("body").append(this.topHtml);
$("#inputId").on("focus",this.fun1);
$("#inputId").on("blur",this.fun2);
}
};
header.init();
</script>

被折叠的 条评论
为什么被折叠?



