函数将旧数据发送到服务器

时间:2015-03-01 23:58:52

标签: javascript jquery

我有一个颜色选择器,人们可以在其中选择颜色,因此每当用户超出颜色时,它会将颜色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;
                    }
                }
            });
        }); 
    });

1 个答案:

答案 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);
            }
        }
    });
});

FIDDLE