js 函数声明

问题: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="找人" οnfοcus="fousFun(this.id);" οnblur="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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值