【问题标题】:compare id with javascipt比较 id 和 javascript
【发布时间】:2020-04-22 22:48:06
【问题描述】:

我有这个函数可以计算点击次数来更改 CSS 并选中 div 中的复选框。此功能链接到多个不同的 div。当我点击不同的 div 时,我想将计数重置为 0。

<script> 
var clicks = 0;

function onClick(a, b, c) {
  clicks++;

  if (clicks == 1) {
    a.checked = true;
    b.checked = false;
    c.className = "class1";

  } else if (clicks == 2) {
      a.checked = false;
      b.checked = true;
      c.className = "class2";
  } else if (clicks == 3) {
      clicks = 0;
  } 
}
</script>

<div id="A1" class="class3" onclick="onClick(cb1,cb2,this)">
     <img src="image.jpg"/>
     <input type="checkbox" id="cb1" value="1" />
     <input type="checkbox" id="cb2" value="2" />
</div>
<div id="A2" class="class3" onclick="onClick(cb3,cb4,this)">
     <img src="image.jpg"/>
     <input type="checkbox" id="cb3" value="3" />
     <input type="checkbox" id="cb4" value="4" />
</div>

【问题讨论】:

  • 使用构造函数或类,这样您就可以拥有一个new 实例。

标签: javascript click counter


【解决方案1】:

您可以执行以下操作:(存储您点击的最后一个 id,如果更改,请重置计数器)

<script> 
var clicks = 0;
var prev = '';
function onClick(a, b, c) {

  if(c.id != prev) {
    clicks = 0;
    prev = c.id;
  }

  clicks++;

  if (clicks == 1) {
    a.checked = true;
    b.checked = false;
    c.className = "class1";

  } else if (clicks == 2) {
      a.checked = false;
      b.checked = true;
      c.className = "class2";
  } else if (clicks == 3) {
      clicks = 0;
  } 
}
</script>

<div id="A1" class="class3" onclick="onClick(cb1,cb2,this)">
     <img src="image.jpg"/>
     <input type="checkbox" id="cb1" value="1" />
     <input type="checkbox" id="cb2" value="2" />
</div>
<div id="A2" class="class3" onclick="onClick(cb3,cb4,this)">
     <img src="image.jpg"/>
     <input type="checkbox" id="cb3" value="3" />
     <input type="checkbox" id="cb4" value="4" />
</div>

【讨论】:

  • @AlexandreCharest 如果它很好,你能接受这个作为答案吗?
  • 抱歉耽搁了。我刚刚做到了;)
猜你喜欢
  • 2012-10-07
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
相关资源
最近更新 更多