在此代码执行中:
http://sandrayoon.com/UAI/www3/newpin.php
我写了一个JS函数,它抓取点击图标的图像源并将所需的单词提取到“nr”变量中:
var root='img/pins/';
var q=0;
var nr;
function swapImg(ima){
//---extract pin----//
if(q==0)
{
nr = ima.getAttribute('src').split('/');
nr = nr[nr.length-1].split('.')[0];
nr = nr.split('1')[0];
}
else if(q==1)
{
nr = ima.getAttribute('src').split('/');
nr = nr[nr.length-1].split('.')[0];
nr = nr.split('2')[0];
}
//-----------------//
if(q==0)
{
ima.setAttribute('src',root+nr+'2.png');
q=1;
//document.write (nr);
}
else if(q==1)
{
ima.setAttribute('src',root+nr+'1.png');
q=0;
}
}
这样,每次点击图标时,它会将img src从“extractedword”1.png更改为“extractword”2.png,来回。
我的问题在于选择了多个图标然后选择了另一个图标 - 它会在“extractword”的末尾添加一个额外的“1”或“2”,搞乱img src链接。
我认为这是由所有图标共享同一个“nr”全局变量作为其提取的单词引起的,但当我在函数内部使用局部变量时,它仍然不起作用。
我该如何解决这个问题?
答案 0 :(得分:1)
我认为你的问题可能与q作为一个全球性问题有关。
var root='img/pins/';
function swapImg(ima){
//---extract pin----//
var nr = ima.getAttribute('src').split('/');
nr = nr[nr.length-1].split('.')[0];
var q = nr.substring(nr.length-1,nr.length);
if(q==1) {
nr = nr.split('1')[0];
ima.setAttribute('src',root+nr+'2.png');
} else if(q==2) {
nr = nr.split('2')[0];
ima.setAttribute('src',root+nr+'1.png');
}
//-----------------//
}