IF声明发布背景更改

时间:2015-03-18 09:18:23

标签: jquery css if-statement

我需要帮助!

让我们说我的页面中有一个元素在滚动时会改变背景颜色。 我想改变它内部标签的颜色,改变背景,我试着在下面写下这样的东西,但它确实没有用! 当背景发生变化时,如何告诉jquery采取行动?

$(function () {
    var background = $("backtotop").css('background', 'black');
    if (background = true) {
        $('a').css('color', 'white')
    }
    if (background = false) {
        $('a').css('color', 'green')
    }
});

4 个答案:

答案 0 :(得分:2)

您的代码有几个语法问题:

$("backtotop")没有有效的选择器,这会选择html-tag backtotop而我不知道这样的标签。而是使用ID选择器(#)或类选择器(.)。

background这里是一个jQuery-Object,没有布尔值。

if (background = true) {,此处您将值true设置为background。所以这个陈述总是正确的,你必须改为使用比较操作符==

$(function () {
    var background = $("#backtotop").css('background-color', 'black'); 
    var backgroundcolor = background.css('background-color');

    if (backgroundcolor == 'rgb(0, 0, 0)') {
        $('a').css('color', 'white')
    } else {
        $('a').css('color', 'green')
    }
});

注意:getter .css() - 函数将返回设置背景颜色的rgb值。

Demo

使用类的第二种方法:

$(function () {
    var background = $("#backtotop").addClass('black')

    if (background.hasClass('black')) {
        $('a').css('color', 'white')
    } else {
        $('a').css('color', 'green')
    }
});

Demo

<强>参考

.css()

.addClass()

.hasClass

答案 1 :(得分:1)

    $(function(){var background=$("backtotop").css('background','black')
if(background == true){$('a').css('color','white')}
if(background == false){$('a').css('color','green')}});

答案 2 :(得分:1)

如果您从下面的行获取字符串

var background=$("backtotop").css('background','black');

然后这样做

if (background == "true") {
    $('a').css('color', 'white')
}
if (background == "false") {
    $('a').css('color', 'green')
}

如果你得到布尔值,那么写如下

if (background) {
    $('a').css('color', 'white')
} else {
    $('a').css('color', 'green')
}

答案 3 :(得分:0)

非常感谢您的回答。 我认为最简单的方法是使用.addClass和.removeClass,因为没有任何建议的方法试图修复我的代码。

然而,这是一种耻辱,因为我认为让它作为背景变化的想法非常酷。 我认为问题是变量不与if语句交互。

在代码上

$(function () {
    var background = $("backtotop").css('background', 'black');
    if (background = true) {
        $('a').css('color', 'white')
    }
    if (background = false) {
        $('a').css('color', 'green')
    }
});

我使用single = a标签的颜色永久保持白色, 如果我使用double ==颜色保持绿色。