我想将左边距增加-190px,每次点击最多6次。我目前有
$$('#goright').addEvent('click', function(){
$$('#buttons').tween('marginLeft', -190);
})
但这只会发射一次。我需要在每次点击时运行(jQuery会使用像++这样的东西)然后最多只运行6次(我假设这也会使用像< 6这样的东西)。
任何帮助???
答案 0 :(得分:1)
这是一种方法。基本上创建一个全局var计数并每次递增1.按下甚至基本上检查点击是否小于6并且如果它抓住所有按钮并对它们执行每个循环然后单独补间它们。诀窍是获取当前el的margin-left样式然后将其转换为int以便删除px
然后加或减取决于你想要元素的margin-left
去哪里。这是JSFIDDLE演示它的动作,但不是去了-190我用了+10,所以你可以看到效果。如果您正在寻找,请告诉我。顺便说一句,这是使用Mootools核心1.3完全兼容:
var count = 0;
$('goright').addEvent('click', function(){
if(count < 6){
$$('.btn').each(function(el){
el.tween('margin-left', el.getStyle('margin-left').toInt()-190);
});
}
count++;
});
我使用的HTML:
<button class='btn'>1</button>
<button class='btn'>2</button>
<button class='btn'>3</button>
<button class='btn'>4</button>
<div id='goright'>Click To Go Right</div>
答案 1 :(得分:0)
实际上,这是一个有趣的事情!如果您可以使用MooTools More,则可以定义伪事件。事件,执行后与自己“做某事”。因此,您myEl.addEvent('click', fn)
会使用myEl.addEvent('click:once', fn)
。在MooTools中,:once
被定义,它会触发一次,然后取消,这意味着,在第二次点击myEl
后,什么都不会发生(EventListener已经去了)。
我创建了一个:times(n)
伪事件,没什么大不了的,但它明确了如何使用这些所谓的伪。这是link to it。
也许这可以帮助你或其他人。
欢呼和快乐的编码!