javascript的事件函数传参的问题
functionshowBlock(){varshow=document.getElementsByClassName('show');varul=document.ge...
function showBlock(){
var show=document.getElementsByClassName('show');
var ul=document.getElementById('topbar');
ul=filterWhiteBlank(ul.childNodes);
for(var i=0;i<ul.length;i++){
ul[i].onmouseover=function(){
show[i].style.display='block';
}
}
请问如何将循环中的i传递到onmouseover的执行函数中去 展开
var show=document.getElementsByClassName('show');
var ul=document.getElementById('topbar');
ul=filterWhiteBlank(ul.childNodes);
for(var i=0;i<ul.length;i++){
ul[i].onmouseover=function(){
show[i].style.display='block';
}
}
请问如何将循环中的i传递到onmouseover的执行函数中去 展开
1个回答
推荐于2016-10-27 · 知道合伙人互联网行家
关注
展开全部
你好,因为事件绑定的函数是通过事件的触发来调用的,只有在事件触发的时候才会执行其绑定的匿名函数,到事件被触发时i值已经是ul.length了。一个可供绕过的方法是在每个ul元素上指定某个属性(例如id)为含有索引数的值(如id=“show1”,id=“show2”....),在通过程序获取索引值。
for(var i=0;i<ul.length;i++){
ul[i].onmouseover=function(e){
var eo=window.event?window.event.srcElement:e.target;
show[parseInt(eo.id.substr(4))].style.display='block';
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询