关于增加 事件处理函数的问题 本帖最后由 clearcleartank 于 2011-04-18 16:43:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你贴的那个是JavaScript DOM 编程艺术里面的函数吧???跟你的代码有什么关系吗? 我的函数就是模仿 截图中的函数写的, 但是有问题, 请各位大侠 给看看。多谢。 我又把代码 格式化了一下,方便阅读。function prepareInputsForHints() { var oldOnblur; var inputs = document.getElementsByTagName("input"); for (var i=0; i<inputs.length; i++){ inputs[i].onfocus = function () { this.parentNode.getElementsByTagName("span")[0].style.display = "inline"; } oldOnblur = inputs[i].onblur; if(i==1) { alert(typeof oldOnblur); //这里显示是函数类型 } if (typeof inputs[i].onblur != 'function' ) { inputs[i].onblur = function () { this.parentNode.getElementsByTagName("span")[0].style.display = "none"; } } else { alert("2"+oldOnblur); //这里显示了该函数的内容 inputs[i].onblur = function(){ alert("3"+typeof oldOnblur); //这里就显示 undefine oldOnblur('aa'); //为什么 firebug 这里老是提示 oldOnblur 不是一个函数呢? this.parentNode.getElementsByTagName("span")[0].style.display = "none"; } } if(i==1) { alert("4"+inputs[1].onblur); } } 编辑的格式怎么不生效呢?? 用插入源代码 试试function prepareInputsForHints() {var oldOnblur;var inputs = document.getElementsByTagName("input");for (var i=0; i<inputs.length; i++){inputs[i].onfocus = function () {this.parentNode.getElementsByTagName("span")[0].style.display = "inline";}oldOnblur = inputs[i].onblur;if(i==1){alert(typeof oldOnblur); //这里显示是函数类型} if (typeof inputs[i].onblur != 'function' ) {inputs[i].onblur = function () {this.parentNode.getElementsByTagName("span")[0].style.display = "none";}}else{alert("2"+oldOnblur); //这里显示了该函数的内容inputs[i].onblur = function(){alert("3"+typeof oldOnblur); //这里就显示 undefineoldOnblur('aa'); //为什么 firebug 这里老是提示 oldOnblur 不是一个函数呢?this.parentNode.getElementsByTagName("span")[0].style.display = "none";}}if(i==1){alert("4"+inputs[1].onblur);}} 菜鸟级别女生请教大家:JSP中判断空值的方法 js时间转换问题 (12小时制时间转换为js的date对象 页面自动下载安装插件问题 关于JScript使用innerHTML动态输出多个嵌套双引号字符串的问题 正则表达式的一个问题 javascript脚本问题,请大家帮忙 如何得到iframe里的内容? 奇怪的一个下拉列表,有时可以,有时却不行,怎么一回事? 尋找圖片分割工具 请问 setTimeout函数是做什么的? 如何制作自己的JS库API呀? IE8上传文件时javascript取文件的本地路径的问题C:\fakepath\
跟你的代码有什么关系吗?
我又把代码 格式化了一下,方便阅读。function prepareInputsForHints() {
var oldOnblur;
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++){
inputs[i].onfocus = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
} oldOnblur = inputs[i].onblur;
if(i==1)
{
alert(typeof oldOnblur); //这里显示是函数类型
}
if (typeof inputs[i].onblur != 'function' )
{
inputs[i].onblur = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
else
{
alert("2"+oldOnblur); //这里显示了该函数的内容
inputs[i].onblur = function(){
alert("3"+typeof oldOnblur); //这里就显示 undefine
oldOnblur('aa'); //为什么 firebug 这里老是提示 oldOnblur 不是一个函数呢?
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
if(i==1)
{
alert("4"+inputs[1].onblur);
} }
var oldOnblur;
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++){inputs[i].onfocus = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
}oldOnblur = inputs[i].onblur;
if(i==1)
{
alert(typeof oldOnblur); //这里显示是函数类型
} if (typeof inputs[i].onblur != 'function' )
{
inputs[i].onblur = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
else
{
alert("2"+oldOnblur); //这里显示了该函数的内容
inputs[i].onblur = function(){alert("3"+typeof oldOnblur); //这里就显示 undefine
oldOnblur('aa'); //为什么 firebug 这里老是提示 oldOnblur 不是一个函数呢?
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
if(i==1)
{
alert("4"+inputs[1].onblur);
}}