JQuery清除队列事件

时间:2012-04-04 10:53:14

标签: jquery

我正在研究一个颜色选择器。 我的想法是通过Ajax请求更新MySQL数据库,同时单击颜色选择器内的颜色。 我正在使用farbtastic colorpicker。 我的问题是,如果你在按钮关闭时移动鼠标,我有很多请求,因为颜色正在改变(我希望它清楚会发生什么)。 这是我的代码:

$('.colorpicker').live('click', function() {
    $this = $(this);
    $.farbtastic('#picker').linkTo(function(color){
            $this.css({'backgroundColor':color});
            $.ajax({
                    type:"GET",
                    url:"data.php?color="+color,
                    success: function(data){
                    /* SOME EVENTS */
                    }
            });
    });
    return false;
});

.colorpicker这是我的div(我改变了背景颜色)

#picker这是乡愁的颜色选择器

如何在单击并移动鼠标时“跳过”所有(AJAX)请求?我想只抓住“mouseup”之前的最后一个请求?

1 个答案:

答案 0 :(得分:2)

我要么使用隐藏字段或javascript变量来捕获所选颜色,然后在鼠标启动时关闭ajax请求。像这样:

var colorselected = null;

$('.colorpicker').live('click', function() {
  $this = $(this);
  $.farbtastic('#picker').linkTo(function(color){
        $this.css({'backgroundColor':color});
        colorselected = color;
  });
  return false;
});

$("#picker").mouseup(function() {
  $.ajax({
    type:"GET",
     url:"data.php?color="+colorselected,
      success: function(data){
       /* SOME EVENTS */
       }
  });
});

这应该避免所有不必要的ajax请求。