我有一个颜色选择器,人们可以在其中选择颜色,因此每当用户超出颜色时,它会将颜色HEX代码发送到服务器。
现在我认为我有一个解决方案,但在客户端它可以工作,因为我使用delete
但每次我都未定义(我不喜欢)。
所以我希望功能像这样工作,用户可以选择颜色,关闭后,必须在点击关闭按钮后将最新颜色发送到服务器。 现在它将选择的颜色代码发送到服务器,我该如何避免这种情况?
$("#color").farbtastic(function(a) {
color = a;
$(".ui-dialog-titlebar-close").click(function() {
socket.emit('send color',{type: 'color', value: a}, function(data){
if(data){
if(data.result=='success'){
console.log(a);
delete color;
}
}
});
});
});
答案 0 :(得分:2)
每次用户选择颜色时都会调用添加到Farbtastic的回调,并且当您在该回调中绑定事件处理程序时,每次有人选择颜色时都会添加一个新的单击事件处理程序,这看起来像一个坏主意。
分隔事件处理程序
$("#color").farbtastic(function(a) {
$("#color").data('fcolor', a);
});
$(".ui-dialog-titlebar-close").click(function() {
var color = $("#color").data('fcolor');
socket.emit('send color',{type: 'color', value: color}, function(data){
if(data){
if(data.result=='success'){
console.log(color);
}
}
});
});