我找到了一些有希望的代码来做随机背景css颜色并反转文本颜色,但似乎无法使其工作。非常感谢任何帮助。
$(document).ready(function() {
var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF'];
function UpdateColors() {
$(this).each(function(index) {
var color = colors[Math.floor(Math.random() * colors.length)];
var invertedColor = invertColor(color);
$(this).css({
'background-color': color,
'color': invertedColor
});
});
}
//$('div').UpdateColors();
});
小提琴:
答案 0 :(得分:2)
您需要在特定元素或元素集上调用css()
方法; $(this)
将无法在您使用它的环境中运行。
所以,因为看起来你正试图为每个元素做这件事:
$(document).ready(function() {
var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF'];
$("*").each(function() {
var color = colors[Math.floor(Math.random() * colors.length)];
var invertedColor = invertColor(color);
$(this).css({ 'background-color': color, 'color': invertedColor });
});
});
如果您想在body元素上执行此操作,请将"*"
替换为"body"
。
(我假设您的invertColor()
功能有效。)
编辑:我想我有点错过了你的观点。延长$
后,您就可以在底部注释掉的通话中调用您的功能。但是,如果您不想({我认为,稍微更加繁琐)使用$
进行操作,我的代码仍然有效。
答案 1 :(得分:2)
你没有扩展jQuery,所以它看不到$('div')。UpdateColors()函数。
我已经调整过,所以你可以这样使用这个功能:jQuery.fn.UpdateColors = function () { ... }
请参阅此小提琴https://jsfiddle.net/h49zh3gy/11/
但是,由于未在任何地方定义invertColor函数,您仍会收到错误。