2011-03-14 81 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

也許這可以幫助你或其他人。

乾杯和快樂的編碼!