我有一个我正在使用的脚本。我希望如此,当用户点击一次,当用户再次点击它将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 = ' ';
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);
答案 0 :(得分:2)
您的问题有点不清楚,但如果您想在每次点击时在0
和3
之间切换:
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);