首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript问题管理变量

Javascript问题管理变量
EN

Stack Overflow用户
提问于 2018-01-09 16:16:29
回答 2查看 66关注 0票数 5

下面是我试图用我的代码:

  1. 单击具有selection()函数的元素。
  2. 函数设置元素的宽度。
  3. 函数选择之前单击item (也具有select()函数)
  4. 函数更改前一个元素的宽度

这是我的JavaScript:

代码语言:javascript
复制
var lastOne;

function selection(event) {
    event.target.style.width = "50px";

    lastOne.style.width = "10px";
    current = event.target.id;
    lastOne = document.getElementById(current);
}

下面是相关的HTML:

代码语言:javascript
复制
<img src="images/Star.png" id="pic1" onclick="selection(event)">
<img src="images/Star.png" id="pic2" onclick="selection(event)">

当前,它正在编辑单击的元素的宽度,但对前一个元素不做任何操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-09 16:19:29

第一次调用selection时,lastOne没有被分配任何东西,JavaScript抛出一个错误,并将从现在起停止工作,因为lastOne永远不会被分配给任何东西。

代码语言:javascript
复制
var lastOne;

function selection(event) {
    event.target.style.width = "50px";

    //an error will get thrown on this line the first time the function is executed because lastOne has not been defined
    lastOne.style.width = "10px";
    current = event.target.id;
    lastOne = document.getElementById(current);
}

我会通过这样做来解决这个问题:

代码语言:javascript
复制
var lastOne;

function selection(event) {
    if(lastOne) {
      lastOne.style.width = "10px";
    }

    event.target.style.width = "50px";
    current = event.target.id;
    lastOne = document.getElementById(current);
}
票数 5
EN

Stack Overflow用户

发布于 2018-01-09 16:25:45

所有操作都很好,除了一件事:如果lastOne变量没有值,就会发生错误,所以您必须检查,这个变量有值吗?在这种情况下,if (lastOne) {//do stuff}就足够了:

代码语言:javascript
复制
var lastOne;

function selection(event) {
    event.target.style.width = "150px";

    if (lastOne) {
      lastOne.style.width = "50px";
    }
    current = event.target.id;
    lastOne = document.getElementById(current);
}
代码语言:javascript
复制
img {
  width: 100px;
  max-width: 150px;
  height: auto;
}
代码语言:javascript
复制
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Gold_Star.svg/2000px-Gold_Star.svg.png" id="pic1" onclick="selection(event)">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Gold_Star.svg/2000px-Gold_Star.svg.png" id="pic2" onclick="selection(event)">

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48172410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档