2011-03-14 54 views
2

我想将左边距增加-190px,每次点击最多6次。我目前有增加MooTools中的左边距

$$('#goright').addEvent('click', function(){ 
    $$('#buttons').tween('marginLeft', -190); 
}) 

但是这只会触发一次。我需要运行每次点击(jQuery会使用类似于++的东西),然后只能最多6次(我认为这也会使用类似< 6的东西)。

任何帮助?

回答

1

这是一种方法。基本上创建一个全局变量计数,并每次增加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> 
+0

非常感谢。完善。 – TheGrevster 2011-03-15 08:57:03

0

这是做的,实际上是一个有趣的事情!如果您可以使用MooTools More,则可以定义伪事件。事件,即执行后自己“做些什么”。因此,你可以使用myEl.addEvent('click:once', fn)来登录myEl.addEvent('click', fn)。在MooTools中,:once被定义,它会触发一次,然后解除,这意味着,在第二次点击myEl后,什么都不会发生(EventListener已经去除)。

我创建了一个:times(n)虚拟事件,没什么大不了的,但它明确了如何使用这些所谓的伪代码。这是一个link to it

也许这可以帮助你或其他人。

干杯和快乐的编码!