gpt4 book ai didi

javascript - jQuery 无法分配给函数结果

转载 作者:行者123 更新时间:2023-11-30 12:42:58 24 4
gpt4 key购买 nike

我在下面的代码中得到了上面标题中的错误:

 $j(".table").delegate('td','click', function(e) {
//alert($j(this).parent().css('background-color'));
if ($j(this).parent().css('background-color') == 'transparent')
$j(this).parent().css('background-color') = '#eee';
else {
$j(this).parent().css('background-color') = 'transparent';
}
});

我不明白为什么我会收到这个错误,因为我已经确定我正在使用赋值运算符 == 来比较字符串

最佳答案

您的问题有两个问题:第一个已经是 answered by @Mike Vranckx , .css() 的正确用法setter 正在传递第二个参数以设置为值。

另一个问题是您的条件永远不会为真,我将在这个答案中解决。如果您按照我建议的方式修复它,您将不需要 .css()


Computed CSS values ,从 getComputedStyle/jQuery 的 .css() 返回,与您在代码中编写的内容不完全相同——它们在解析为 CSSOM 时会发生转换。

例如,在 Chrome 中:

body { background-color: transparent; }

console.log( $('body').css('background-color') ); //returns "rgba(0, 0, 0, 0)"

See for yourself.

这就是为什么您的 $(...).('background-color') == 'transparent' 条件始终为假。


最简洁和跨浏览器的解决方案是使用类( .addClass()removeClass()toggleClass() )应用样式并使用 .hasClass() 进行条件检查.

但在您的情况下,.toggleClass 就足够了。这是编写逻辑 ( fiddle ) 的简单方法:

$j(".table").on('click', 'td', function() {
$j(this).parent().toggleClass('bg-gray');
});

.bg-gray {
background: #eee;
}

关于javascript - jQuery 无法分配给函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737896/

24 4 0
文章推荐: javascript - Jquery $(#id) 和 $([id=]) 有什么区别
文章推荐: javascript - JQM 稍后预置的翻转开关不会对事件使用react
文章推荐: javascript - 无法为