javascript新手试图弄清楚这一点
New to javascript trying to figure this out
所以我试图在点击按钮时激活多个灯,但我不确定我做错了什么。
我想我可以把它做成一个函数,然后给它传递id名称,但看起来它没有按照我想要的方式运行。
html
<div class="lights">
<div id="red"></div>
<div id="yellow"></div>
<div id="green"></div>
</div>
<div class="button">
<button id="red_button"> Red Button </button>
<button id="yellow_button">Yellow Button </button>
<button id="green_button">Green Button </button>
</div>
css
.lights{
height: 600px;
width: 200px;
background-color: black;
padding-top: 15px;
}
.button{
padding-top: 20px;
}
#red,
#yellow,
#green {
margin: 0 auto;
background-color: black;
border-radius: 50%;
width: 180px;
height: 180px;
margin-top: 10px;
}
#red.active {
background-color: red;
}
#yellow.active {
background-color: yellow;
}
#green.active {
background-color: green;
}
jquery
function click(e) {
$('#red,#yellow,#green').removeClass('active');
$('e').addClass('active');
}
$('#red_button').click(click('#red'));
$('#yellow_button').click(click('#yellow'));
$('#green_button').click(click('#green'));
http://jsfiddle.net/0m9wos1r/1/
一些事情。我不建议以事件命名函数,尽管它应该仍然有效。代码的问题在于,您立即调用函数,并且在函数中引用了参数。使用这个替代:
function click(e) {
$('#red,#yellow,#green').removeClass('active');
$(e).addClass('active');
}
$('#red_button').click(function () {
click('#red')
});
$('#yellow_button').click(function () {
click('#yellow')
});
$('#green_button').click(function () {
click('#green')
});
.lights {
height: 600px;
width: 200px;
background-color: black;
padding-top: 15px;
}
.button {
padding-top: 20px;
}
#red, #yellow, #green {
margin: 0 auto;
background-color: black;
border-radius: 50%;
width: 180px;
height: 180px;
margin-top: 10px;
}
#red.active {
background-color: red;
}
#yellow.active {
background-color: yellow;
}
#green.active {
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="lights">
<div id="red"></div>
<div id="yellow"></div>
<div id="green"></div>
</div>
<div class="button">
<button id="red_button">Red Button</button>
<button id="yellow_button">Yellow Button</button>
<button id="green_button">Green Button</button>
</div>
已修复:http://jsfiddle.net/0m9wos1r/4/
需要解决的2个问题:
单击调用中的函数调用。像这样,使用匿名函数:
$('#red_button').click(function(){click('#red')});
单击功能中的选择器。像这样:
$(e).addClass('active');
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- gmap3如何做到这一点-它显示圆圈的任何事件
- 硒元素在这一点上是不可点击的
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- 我需要帮助弄清楚一旦窗口的垂直高度被滚动,如何切换一个元素
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- 我需要帮助弄清楚为什么;如果'声明不起作用
- 超级棘手的Javascript测验,需要弄清楚答案
- 无法弄清楚为什么我的标题的其余部分不会显示
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- 无法弄清楚为什么本机 Promise 变量未定义
- 试图弄清楚如何使汉堡菜单在打开后保持静止
- 请帮我弄清楚这是一种什么样的脚本语言
- javascript新手试图弄清楚这一点
- 请帮我弄清楚这颗星星是如何在画布上制作的
- 为什么我的JavaScript不工作?这似乎是麻烦与我的RegEx,但我不能弄清楚
- 不能弄清楚为什么这是给我一个TypeError
- 我有一个输入,它的's类型设置为隐藏,我需要改变它的's类型为文本.我似乎无法弄清楚这一点,或者它是否可
- 如何在点击ONLY时折叠导航栏菜单,而不是打开,很难弄清楚这一点