Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 颜色选择器在JQuery中设置每个属性_Javascript_Jquery_Html - Fatal编程技术网

Javascript 颜色选择器在JQuery中设置每个属性

Javascript 颜色选择器在JQuery中设置每个属性,javascript,jquery,html,Javascript,Jquery,Html,我在一个页面上设置了三个按钮作为数组。我使用$.each遍历它们,其中是颜色选择器函数。我试图只让(上次)点击的按钮改变背景颜色,但是现在,如果我在使用颜色选择器之前点击所有3个按钮,它们都会改变颜色。我只需要最后点击按钮来改变颜色 为什么不将单击事件与颜色更改绑定 $('.buttons_that_change_color_on_click').bind('click', function(){ this.style.backgroundcolor = the_value_you_w

我在一个页面上设置了三个按钮作为数组。我使用$.each遍历它们,其中是颜色选择器函数。我试图只让(上次)点击的按钮改变背景颜色,但是现在,如果我在使用颜色选择器之前点击所有3个按钮,它们都会改变颜色。我只需要最后点击按钮来改变颜色


为什么不将单击事件与颜色更改绑定

$('.buttons_that_change_color_on_click').bind('click', function(){

    this.style.backgroundcolor = the_value_you_want;

});

您的解决方案似乎过于复杂。更简单的解决方案可能是:

  • 将单击处理程序添加到按钮。单击按钮时,将“活动”类添加到该按钮并从其他按钮中删除
  • 将更改处理程序绑定到颜色选择器。发生这种情况时,请更改活动按钮的背景色:
  • 我还假设您可以为按钮提供一类
    colorButton

    $('.colorButton').click(function(e) {
        e.preventDefault();
        $('.colorButton').removeClass('active');
        $(this).addClass('active');
    })
    
    $('#color').change(function() {
        $('.colorButton.active').css('background-color', this.value);
    });
    

    工作提琴:

    你能提供一份你目前拥有的东西的清单吗?旁注:如果您已经在使用jQuery,那么就不需要
    document.getElementById
    如果您只需要将一个单击事件绑定到最后一个按钮,那么您需要为每个按钮绑定一个
    单击
    的原因是什么?我对这方面还不太熟悉,所以这是我的一个错误。我会把带子拿出来,但我还是不知道如何让它做我想做的事。
    $('.colorButton').click(function(e) {
        e.preventDefault();
        $('.colorButton').removeClass('active');
        $(this).addClass('active');
    })
    
    $('#color').change(function() {
        $('.colorButton.active').css('background-color', this.value);
    });