1

我正在研究颜色选择器。我的想法是通过 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这是 farbstatic 颜色选择器

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

4

1 回答 1

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 请求。

于 2012-04-04T13:05:46.770 回答