var f=[],fn=[];
for(i=1;i<7;i++){
f[i]=$('f'+i);
fn[i]=$('fn'+i);
f[i].onmouseover=fonmouse(i);
}
function fonmouse(i){
fndisplay(i);
}function fndisplay(i){
for (var j=1;j<7;j++){
if(i==j){
fn[j].style.display='block';
}else{
fn[j].style.display='none';
}
}
}绑定的 事件为什么他先执行了一下?
而我得数组值没有赋完,出现空值就报错。
但是鼠标经过的时候值就已经赋完了,记得以前写的时候
onmouseover 就是先绑定上里面的函数是不执行的,只有鼠标经过的时候才执行。
等鼠标经过的时候我得值就已经赋完了,不知道大家看明白没,坐等求解。
for(i=1;i<7;i++){
f[i]=$('f'+i);
fn[i]=$('fn'+i);
f[i].onmouseover=fonmouse(i);
}
function fonmouse(i){
fndisplay(i);
}function fndisplay(i){
for (var j=1;j<7;j++){
if(i==j){
fn[j].style.display='block';
}else{
fn[j].style.display='none';
}
}
}绑定的 事件为什么他先执行了一下?
而我得数组值没有赋完,出现空值就报错。
但是鼠标经过的时候值就已经赋完了,记得以前写的时候
onmouseover 就是先绑定上里面的函数是不执行的,只有鼠标经过的时候才执行。
等鼠标经过的时候我得值就已经赋完了,不知道大家看明白没,坐等求解。
for (i = 1; i < 7; i++) {
f[i] = $('f ' + i);
fn[i] = $('fn ' + i);
f[i].onmouseover = function() { fonmouse(i); } //这样写就不会执行了
}
...
<h1><span><a href="###" id="f1">市县农网</a><a href="###" id="f2">市县农委</a><a href="###" id="f3">市直部门</a><a href="###" id="f4">龙头企业</a><a href="###" id="f5">合作社</a><a href="###" id="f6">友情链接</a></span>网站协同</h1>
<%for i=1 to 6%>
<div id="fn<%=i%>">
北京市农业局信息网<%=i%>
</div>
<%next%>
</div><script>function $(sid){
return document.getElementById(sid);
}var f=[],fn=[];
for(i=1;i<7;i++){
f[i]=$('f'+i);
fn[i]=$('fn'+i);
f[i].onmouseover=function(i){fonmouse(i);}
}
function fonmouse(i){
fndisplay(i);
}
function fndisplay(i){
for (var j=1;j<7;j++){
if(i==j){
fn[j].style.display='block';
}else{
fn[j].style.display='none';
}
}
}
</script>
for(i=1;i <7;i++){
(function(){
var j=i;
f[j]=$( 'f '+j);
fn[j]=$( 'fn '+j);
f[j].onmouseover=fonmouse(j);
})();
}
差点忘了……上面那个是会立即执行的,这个才是
for(i=1;i <7;i++){
(function(){
var j=i;
f[j]=$( 'f '+j);
fn[j]=$( 'fn '+j);
f[j].onmouseover=function(){fonmouse(j);};
})();
}
(function(i){
var j=i;
f[j]=$( 'f'+j);
fn[j]=$( 'fn'+j);
f[j].onmouseover=function(){fonmouse(j);};
})(i);
} 我闭包传不进去值。 里面得不到I
(function(){
var j=i;
f[j]=$( 'f'+j);
fn[j]=$( 'fn'+j);
f[j].onmouseover=function(){fonmouse(j);};
})();
} 里面已经有i了……