首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加方法后背景颜色在div中的应用

添加方法后背景颜色在div中的应用
EN

Stack Overflow用户
提问于 2016-03-28 05:23:02
回答 6查看 1.7K关注 0票数 0

我试图创建一个动态的彩色书签,只是为了实践jQuery,但是,我遇到了一个问题,使用追加方法创建一个新的div,并应用CSS背景方法将div的文本(输入)应用于单个div的颜色。我的问题是没有得到背景颜色的应用。我不太清楚我做错了什么,或者为什么我的.css()方法不能工作。

代码语言:javascript
复制
var colorIn = $("#materialColorInput");
var matDes = $(".material-design");

colorIn.keypress(function (event) {
  if (event.which === 13) {
    var inVal = colorIn.val();
    var color = $(".color");
    colorIn.val("");
    function addBackColor() { 
        $("this").css('background-color', $(this).text())
    };
    var addDiv = $('<div onload="addBackColor()">' +inVal+ '</div>').addClass("color");
    matDes.append(addDiv);
  }
});

我还为它做了一支笔:http://codepen.io/Aricha03/pen/KzqXmr

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-03-28 05:44:30

在你的密码里有错误

代码语言:javascript
复制
 $(this).css('backgound-color', 'backColor');

应该是background-color,而不是backgound-color。而且,backColor是一个变量&它不是string

代码语言:javascript
复制
var colorIn = $("#materialColorInput");
var matDes = $(".material-design");

colorIn.keypress(function(event){
    if(event.which ===13){
        var newDiv = colorIn.val();
        colorIn.val("");
        matDes.append('<div class="color">' + newDiv + '</div>');
        var color = $(".color");
            console.log(color);
        color.each(function(){
            var backColor = $(this).text();
                    console.log(backColor);
            $(this).css('background-color', backColor); // I changed here

        });        
    }
});

用于演示的小提琴

票数 0
EN

Stack Overflow用户

发布于 2016-03-28 05:32:18

addBackColor是keypress事件的本地函数,您必须将它移出keypress事件之外。

代码语言:javascript
复制
var colorIn = $("#materialColorInput");
var matDes = $(".material-design");

function addBackColor(element) { 
    $(element).css('background-color', $(element).text())
};

colorIn.keypress(function (event) {
  if (event.which === 13) {
    var inVal = colorIn.val();
    var color = $(".color");
    colorIn.val("");

    var addDiv = $('<div onload="addBackColor(this)">' +inVal+ '</div>').addClass("color");
    matDes.append(addDiv);
  }
});
票数 0
EN

Stack Overflow用户

发布于 2016-03-28 05:34:38

删除color值的引号

代码语言:javascript
复制
var colorIn = $("#materialColorInput");
var matDes = $(".material-design");

colorIn.keypress(function(event){
    if(event.which ===13){
        var newDiv = colorIn.val();
        colorIn.val("");
        matDes.append('<div class="color">' + newDiv + '</div>');
        var color = $(".color");
        color.each(function(){
            var backColor = $(this).text();
            $(this).css('background-color', backColor);  //I removed quotes for the backcolor and r missing in background color
                        alert(backColor);
        });        
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36256471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档