两个javascript' changeimage'功能,只有一个工作

时间:2016-03-12 15:12:29

标签: javascript function onload

我正在学习javascript,我对changeimage功能有疑问。

我需要更改一张和第二张图片。

这是jsfiddle。

https://jsfiddle.net/7ewjoxnv/1/

以下是javascript:

var switchingImage;

function changeImage()
{
        switchingImage.src = this.value;
}

window.onload = function() {
    var radios = document.getElementById('imageSwitcher').getElementsByTagName('input');
    switchingImage = document.getElementById('imageToSwitch');
    for(var i=0;i<radios.length;i++)
    {
        radios[i].onclick = changeImage;
    }

    var radios = document.getElementById('imageSwitcher2').getElementsByTagName('input');
    switchingImage = document.getElementById('imageToSwitch2');
    for(var o=0;o<radios.length;o++)
    {
        radios[o].onclick = changeImage;
    }
}

非常感谢任何帮助。

最诚挚的问候, 大卫!

1 个答案:

答案 0 :(得分:1)

第二次执行var radio =switchingImage =时,您正在更改之前的值。

radios的情况下,它恰好发生并且不会影响您,因为您已经将想要的侦听器应用于旧的单选按钮。

但是,对于switchingImage,它会影响您,因为switchingImage最终将指向document.getElementById('imageToSwitch2')。因此,当您致电changeImage()时,它始终会在document.getElementById('imageToSwitch2')上运行。

这是一种方式,您可以解决您的问题。故意不是最好的解决方案。用它作为基线来改进它。

https://jsfiddle.net/7ewjoxnv/4/