-1

我有一个img. 单击时,它会检查其父对象的背景颜色,如果背景颜色为白色,则将背景颜色切换为灰色,如果为灰色,则将背景颜色切换为白色。这里 k 的值为 rgb(255,255,255) (白色),但是 if 循环将被执行,但 else 部分被执行......意味着如果不工作......在我的代码中,当我执行它时会发生什么......它仅当部分时才执行,当我更改某些内容时,它只执行其他部分......即使条件不满足......就像它应该在白色时变为灰色,在灰色时变为白色......但它没有。 ...我想问一下我使用的条件...是否正确...

function havetotha(it) {
    var k = $(it).parent().css('background-color');
    $('#message').html(k);
    if (k == 'white') {
        $(it).parent().css('backgroundcolor','grey');
    }
    else {
        $(it).parent().css('backgroundcolor','white');
    }
}

我想到了 ...

如果在条件下我正在比较 ($(it).parent().css('background-color')=="rgb(255,255,255)").... 其中 rgb(255,255,255) 是字符串但 $(it) .parent().css('background-color') 它不是字符串,所以....我使用了一个技巧,我制作了两个 div,一个带有灰色背景,另一个带有白色....并将背景与我的元素进行了比较....它的工作原理只是需要很长时间才能进入我的脑海..

4

2 回答 2

2

请务必指定问题...将背景颜色更改为背景颜色。您可以按如下方式优化代码:

function havetotha(it) {
   var k = $(it).parent()
   $('#message').html(k);
   if (k.css('background-colour') == "white") {
      k.css('background-color','grey');
   }
   else if (k.css('background-colour') == "grey")({
      k.css('background-color','white');
   }
}

该行的目的是什么:

$('#message').html(k);

于 2013-02-08T10:40:58.077 回答
0

k 应该在要返回的函数之前声明或将结果返回给全局变量,如下所示:

function havetotha(it) { return $(it).parent().css('background-color');}
k = havetotha(it);
//rest of the code
于 2013-02-08T10:25:22.490 回答