如何通过onclick使输入更改其src?

时间:2015-08-21 21:10:09

标签: javascript jquery html onclick

我正在尝试这个并且我的背景改变颜色(我想要的)但输入的src仅在我第二次点击时改变。如何在第一次点击时更改源?另外如何通过第二次点击将src更改回原始文件?

<input id="showHideContainer" type="image" src="on.png " height="3%" width="2%" alt="On" onclick="toggle();">

<script>
document.getElementById('showHideContainer').onclick = function () {
divTest = document.getElementById('header');
if (divTest.style.display === "none") {
    divTest.style.display = 'block';
} else {
    divTest.style.display = "none";
};
$('body').toggleClass('style2');
$('#showHideContainer').click(function(){
$('#showHideContainer').attr('src', 'off.png');
});
}
</script>

2 个答案:

答案 0 :(得分:3)

您需要确定obj的当前状态,然后将其与其他

切换
$('#showHideContainer').click(function(){
    var off = $(this).attr('src').indexOf('off.png')>-1;
    $(this).attr('src', (off?'on.png':'off.png'));
});

答案 1 :(得分:1)

快速修复。您现在在第一次单击#showHideContainer时附加了anoter事件处理程序,这就是它第一次没有触发的原因。这个修剪过的代码版本可以获得预期的结果,另请参阅另一个答案来查看元素属性的状态:

 document.getElementById('showHideContainer').onclick = function () {
        divTest = document.getElementById('header');
        if (divTest.style.display === "none") {
            divTest.style.display = 'block';
        } else {
            divTest.style.display = "none";
        };
        $('body').toggleClass('style2');
        var off = $(this).attr('src').indexOf('off.png')>-1;
        $(this).attr('src', (off?'on.png':'off.png'));
    }