JQuery清除队列事件
问题描述:
我正在使用colorpicker。 我的想法是通过Ajax请求更新MySQL数据库,同时单击colorpicker中的颜色。 我正在使用farbtastic colorpicker。 我的问题是,如果您在按钮关闭时移动鼠标,我有很多请求,因为颜色正在改变(我希望很清楚会发生什么)。 这是我的代码:JQuery清除队列事件
$('.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”之前的最后一个请求?
答
我会使用隐藏的字段或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请求。
+0
谢谢。我以这种方式解决了问题;-) – 2012-04-25 00:23:03
[使用jQuery使用JavaScript杀死Ajax请求]的可能重复(http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery) – zerkms 2012-04-04 10:55:26