function show()
{
var elem = document.getElementById("pop").querySelector('li:nth-child(3)');
elem.style.width = "500px";
}
</script>
我已将此代码附加到onclick
<li onclick="show()">
该元素最初为200px,然后在单击时变为500px。如何让它工作,以便当我再次点击它时它会回到200 ??
答案 0 :(得分:3)
最好的办法是使用CSS类来设置宽度。这具有以下优点:
示例:
CSS:
.wide {
width: 500px;
}
HTML:
<li onclick="show(this)">...</li>
JS:
function show(elem) {
elem.classList.toggle('wide');
}
有关浏览器支持的信息,请查看MDN documentation regarding classList
。您还可以在这个关于元素处理CSS类的优秀问题/答案中找到替代方案:Change an element's class with JavaScript
要了解有关事件处理的更多信息(绑定事件处理程序的方法,事件处理程序中可用的信息等),请查看excellent articles at quirksmode.org。
答案 1 :(得分:1)
function show() {
var elem = document.getElementById("pop").querySelector('li:nth-child(3)'),
width = parseInt(elem.style.width, 10);
if (width === 500) {
elem.style.width = "200px";
}
else {
elem.style.width = "500px";
}
}
虽然,我可能会将函数命名为toggle
或类似的东西而不是内联点击处理程序。
答案 2 :(得分:0)
使用控制变量
var clickControl = false;
function show()
{
if(clickControl)
{
var elem = document.getElementById("pop").querySelector('li:nth-child(3)');
elem.style.width = "500px";
clickControl = !clickControl;
}
else
{
var elem = document.getElementById("pop").querySelector('li:nth-child(3)');
elem.style.width = "200px";
clickControl = !clickControl;
}
}