javascript - 多次更改 onclick() 函数(背景图像更改)

标签 javascript html css function onclick

四处搜索了一下试图找到答案(以及我是否能做到这一点)。

我有一些 HTML 和 JavaScript 可以根据用户是女性还是男性来更改背景图像。

默认情况下,页面加载男性背景并提供一个按钮,单击时调用 bgChangeFemale():

<img src="BackgroundMale.png" id="backgroundImage" style="position:absolute; z-index:-1;"/>

<div id="gameContent">

    <div class="logo">

        <a id="genderButton" class="myButton" onclick="bgChangeFemale()" style="float:left; width:60px; height:10px; padding-top:5px; margin-top:10px; margin-left:0px; padding-left:12px; padding-right:30px;">Female?</a>

<script>            
 function bgChangeFemale() {
  document.getElementById("backgroundImage").src = "BackgroundFemale.png";
  document.getElementById("genderButton").innerHTML = "Male?";
  document.getElementById("genderButton").style.width = "40px";
  document.getElementById("genderButton").onclick = "bgChangeMale()";
}

 function bgChangeMale() {
  document.getElementById("backgroundImage").src = "BackgroundMale.png";
  document.getElementById("genderButton").innerHTML = "Female?";
  document.getElementById("genderButton").style.width = "60px";
  document.getElementById("genderButton").onclick = "bgChangeFemale()";
}

第一个按钮/功能完全没有问题,并将背景图像更改为女性版本。但是,当我再次单击按钮将其更改回 Male 时,没有任何反应。我是做错了什么还是无法实现?

感谢您的回答(请放轻松,第一次发帖)!

最佳答案

onclick 属性未更改。要更改 onclick 使用此

对于女性

document.getElementById("genderButton").setAttribute('onclick','bgChangeFemale()'); 

对于男性-

  document.getElementById("genderButton").setAttribute('onclick','bgChangeMale()'); 

关于javascript - 多次更改 onclick() 函数(背景图像更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422205/

相关文章:

javascript - 加载应用程序时调用函数

javascript - 当分解成组件时,登录表单 React 不起作用

java - 如何在进入JSP页面后立即进入Servlet?

css bootstrap - 如何将一列拆分为仅适用于小屏幕的行?

javascript - 扩展容器和播放视频时隐藏 DIV 中的内容

javascript - 处理空数组并出现错误 "Uncaught (in promise) SyntaxError: Unexpected end of JSON input."

jquery - 如何在两个或多个幻灯片之间切换?

html - CSS 禁用水平滚动在本地服务器上工作,但不在域上

javascript - 单击放大 SVG 组,然后最小化

javascript - CSS 调整元素宽度(有问题)