我目前正在学习 Javascript,现在我在搞乱事件监听器。
但是我有一个问题,当我在一个循环中创建事件监听器时,我无法弄清楚如何将一个持续存在的变量传递给它。我制作了一个脚本,当我单击它时将元素移动到指定位置。但是现在它把所有元素放在同一个位置,所以出于某种原因,它们都得到了相同的数字。
不管我是否这样传递:
var index = i;
applications[i].addEventListener('click', function(){
var posLeft2 = 10*index+"%";
var iconstyleO = " text-align: center; "+
" font: bold 22px Tahoma; "+
" position:fixed; "+
" top: 67%; "+
" left: "+posLeft2+"; "+
" display:block; "+
" margin: 150px auto; "+
" color: #ffffff; "+
" z-index: 3; "+
" -webkit-border-radius: 10px; "+
" background: rgb(140,140,140); "+
" width: 10%; "+
" height: 10%; ";
this.setAttribute('style',iconstyleO);
} ,false);
或像这样:
var index = i;
applications[i].addEventListener('click', function(index){
var posLeft2 = 10*index+"%";
var iconstyleO = " text-align: center; "+
" font: bold 22px Tahoma; "+
" position:fixed; "+
" top: 67%; "+
" left: "+posLeft2+"; "+
" display:block; "+
" margin: 150px auto; "+
" color: #ffffff; "+
" z-index: 3; "+
" -webkit-border-radius: 10px; "+
" background: rgb(140,140,140); "+
" width: 10%; "+
" height: 10%; ";
this.setAttribute('style',iconstyleO);
} ,false);
他们仍在将事件侦听器设置为相同的位置。在最后一个元素的位置,或者在第一个元素的位置,这取决于我如何尝试传递它。
有任何想法吗?