Javascript听第二次点击

时间:2015-10-03 03:07:42

标签: javascript

我有一个我正在使用的脚本。我希望如此,当用户点击一次,当用户再次点击它将var更改为0时,将var更改为3然后重复。所以再次点击将是0另一个将是3我想要检测的部分第二次点击是'mousemove'。任何人的帮助请在下面是我的代码。

window.addEventListener('load', function () {
    function go() {
        i = i < height ? i + step : 1;
        m.style.marginTop = -i + 'px';
    }
    var i = 0,
        step = 3,
        space = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    var m = document.getElementById('marquee');
    var t = m.innerHTML;
    m.innerHTML = t + space;
    m.style.position = 'absolute';
    var height = (m.clientHeight + 1);
    m.style.position = '';
    m.innerHTML = t + space + t + space + t + space + t + space + t + space + t + space + t + space;
	// first click
	m.addEventListener('click', function () {
        step = 0;
    }, true);
    // second click
    m.addEventListener('mousemove', function () {
        step = 3;
    }, true);

    var x = setInterval(go, 50);
}, true);

2 个答案:

答案 0 :(得分:2)

您的问题有点不清楚,但如果您想在每次点击时在03之间切换:

var result = document.querySelector('#result')
var step = 0
document.querySelector('#m').addEventListener('click', function (event) {
  // `0` is false-y in JS, so if `step === 0`, then it'll be set to 3
  // otherwise, it'll be set to 0 (`3` is truth-y)
  step = step ? 0 : 3
  result.innerHTML = 'step is ' + step
  
  // if you want to do something with `step`:
  if (step === 0) {
    // do something
  } else {
    // do something else
  }
})
<button id='m'>click me</button>
<p id='result'></p>

答案 1 :(得分:1)

一种方法是设置点击计数器。如果点击计数器是偶数,则将步长设置为零,如果是奇数,则将其设置为3。

  var clickCounter = 0;

  m.addEventListener('click', function () {
        step = (clickCounter++ % 2 === 0 ? 3 : 0);
  }, true);

DEMO:http://jsfiddle.net/byrkfvvk/

另一种方法是使用一个内部属性作为布尔切换。

  document.getElementById('button').addEventListener('click', function () {
      this.active = !this.active;
      step = (this.active ? 3 : 0);
  }, true);

DEMO:http://jsfiddle.net/h8hu4sm0/1/

相关问题