scriptaculous效果发生一次

时间:2012-01-25 17:59:26

标签: javascript prototypejs scriptaculous

我有一个按钮,可以在页面上移动div,但我希望按钮只移动一次。如果用户现在一直点击按钮,则div会继续朝同一方向移动。

3 个答案:

答案 0 :(得分:1)

简单而通用的方法可能只是设置一个标志。

var box_can_move = true;
$('button_id').on('click', function(event, element){
    if(box_can_move){
        box_can_move = false;
        //move box;
    }
});

正如clockworkgeek的评论所提到的那样,拥有一个标志的一大优势是能够直接操作和检查状态(盒子已移动或不移动),而不将其与事件处理逻辑耦合。

答案 1 :(得分:0)

如果您有能力使用jQuery,使用one()方法很简单:

$('yourButtonId').one('click', 
    function(event) 
    { 
        alert('This will only execute once.'); 
    });

答案 2 :(得分:0)

试试吧

  $('button_id').on('click', function(event, element){
   new Effect.Move('div', {x: 300});
   element.stopObserving();
  });

示例http://jsfiddle.net/pJ9cf/