我有一个颜色选择器,人们可以在其中选择颜色,因此每当用户选择某种颜色时,它就会将颜色十六进制代码发送到服务器。
现在我认为我有一个解决方案,但在客户端它可以工作,因为我使用 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;
}
}
});
});
});
最佳答案
每次用户选择颜色时,都会调用添加到 Farbtastic 的回调,并且当您在该回调中绑定(bind)事件处理程序时,每次有人选择颜色时都会添加一个新的单击事件处理程序,这似乎很糟糕想法。
分离事件处理程序
$("#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);
}
}
});
});
关于javascript - 函数将旧数据发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28800782/