我正在研究一个颜色选择器。 我的想法是通过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”之前的最后一个请求?
答案 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请求。