onmouseover怎么向onmouseout中传递变量? 例如onmouseover中创建了变量x,在onmouseout用一下这个变量就把它注销掉,如果直接在外部定义x为全局变量,整个程序全局变量太多了,我怕会对程序运行不利,所以就想有没有这种方法来实现,或者能不能临时创建一个全局变量,然后在其它函数调用后就把它注销掉?请高手指点. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 net_lover 于 2010-04-08 08:47:27 编辑 这样不行啊,我有两个span,当鼠标移动span1上时调用变量x存了个信息,当鼠标移开时,调用了settimeout等待一秒钟读取变量x执行一个函数就over,问题是,在移开一秒前我又移到span2上,它会重新给x斌值,这样一来原先的settimeout执行函数时读取的x变量值就不对了啊? setTimeout的时候用个闭包把这个变量弄进去,外面的全局变量无论是改变了还是销毁了,都对这次操作无影响 var x;function mouseover{x=1;}function mouseout{y=x;setTimeout("f(y)",1000);} <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <span id="s1" style="background:#3fdddd;height:30px">222222222222222222</span> <span id="s2" style="background:#654322;height:30px">333333333333333333</span> <SCRIPT LANGUAGE="JavaScript"> <!-- function createEventFunc(type) { var x; if (type === "over") { return function(event){ x = 1; }; } if (type === "out") { return function(event){ x = null; }; } } document.getElementById("s1").onmouseover = createEventFunc("over"); document.getElementById("s2").onmouseover = createEventFunc("over"); document.getElementById("s1").onmouseout = createEventFunc("out"); document.getElementById("s2").onmouseout = createEventFunc("out"); //--> </SCRIPT> </BODY></HTML> 上面的不行,这个试下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <span id="s1" style="background:#3fdddd;height:30px">222222222222222222</span> <span id="s2" style="background:#654322;height:30px">333333333333333333</span> <SCRIPT LANGUAGE="JavaScript"> <!-- function Func() { var obj = { over:function(event){ alert(this.x); this.x = 1; }, out:function(event){ alert(this.x); this.x = undefined; } }; this.createEventFunc = function(type) { if (type === "over") { return obj.over; } if (type === "out") { return obj.out; } } } var func = new Func(); document.getElementById("s1").onmouseover = func.createEventFunc("over"); document.getElementById("s2").onmouseover = func.createEventFunc("over"); document.getElementById("s1").onmouseout = func.createEventFunc("out"); document.getElementById("s2").onmouseout = func.createEventFunc("out"); //--> </SCRIPT> </BODY></HTML> $("td", this)是什么意思? 请教window.top,window.self,window.parent 对象 用javascript实现,急求帮助!!! 这个javascript程序请帮我改改 帮忙看个触发事件啊!!!!!! 请教javascript高手,有关focus();的问题。。 简单的问题,在线等! 想让jquery先获取iframe的宽和高,然后dialog再居中,我的代码问题在哪? Javascript怎么获得COOK的信息? 求助关于html编辑器的问题! 特急!在线等待! js 循环添加onclick事件 jQuery选择器如何选择这样组合的DD元素?
setTimeout的时候用个闭包把这个变量弄进去,外面的全局变量无论是改变了还是销毁了,都对这次操作无影响
function mouseover{x=1;}
function mouseout{y=x;
setTimeout("f(y)",1000);
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<span id="s1" style="background:#3fdddd;height:30px">222222222222222222</span>
<span id="s2" style="background:#654322;height:30px">333333333333333333</span>
<SCRIPT LANGUAGE="JavaScript">
<!--
function createEventFunc(type) {
var x;
if (type === "over") {
return function(event){
x = 1;
};
}
if (type === "out") {
return function(event){
x = null;
};
}
}
document.getElementById("s1").onmouseover = createEventFunc("over");
document.getElementById("s2").onmouseover = createEventFunc("over");
document.getElementById("s1").onmouseout = createEventFunc("out");
document.getElementById("s2").onmouseout = createEventFunc("out");
//-->
</SCRIPT>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD> <BODY>
<span id="s1" style="background:#3fdddd;height:30px">222222222222222222</span>
<span id="s2" style="background:#654322;height:30px">333333333333333333</span>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Func() {
var obj = {
over:function(event){
alert(this.x);
this.x = 1;
},
out:function(event){
alert(this.x);
this.x = undefined;
}
};
this.createEventFunc = function(type) {
if (type === "over") {
return obj.over;
}
if (type === "out") {
return obj.out;
}
}
}
var func = new Func();
document.getElementById("s1").onmouseover = func.createEventFunc("over");
document.getElementById("s2").onmouseover = func.createEventFunc("over");
document.getElementById("s1").onmouseout = func.createEventFunc("out");
document.getElementById("s2").onmouseout = func.createEventFunc("out");
//-->
</SCRIPT>
</BODY>
</HTML>