2012-04-04 6 views
1

나는 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 내 사업부가

#picker (I 배경 색상을 변경할 경우)는 모든 (AJAX)를 "건너 뛰기"하는 방법 farbstatic ColorPicker를

이야의 요청을 클릭하면서 : 이 내 코드입니다 움직이는 마우스? "mouseup"직전의 마지막 요청 만 잡으려고합니까?

+0

[jQuery를 사용하여 JavaScript를 사용하여 Ajax 요청을 죽일 수 있습니다] (http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery) – zerkms

답변

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 요청을 모두 피할 수 있습니다.

+0

감사합니다. 나는이 방법으로 바로 해결했다 ;-) –