生成随机颜色jQuery不添加css
我试图创建一个随机颜色选择器,我希望div的类颜色在随机生成的十六进制颜色中完全着色。我尝试只添加1个块(有效),现在我尝试将其添加到foreach。颜色如下所示:生成随机颜色jQuery不添加css,jquery,html,css,Jquery,Html,Css,我试图创建一个随机颜色选择器,我希望div的类颜色在随机生成的十六进制颜色中完全着色。我尝试只添加1个块(有效),现在我尝试将其添加到foreach。颜色如下所示: $("#generateColors").click(function () { $('.color').each(function () { $.ajax({ url: '/Pastel/PastelRGB', type
$("#generateColors").click(function () {
$('.color').each(function () {
$.ajax({
url: '/Pastel/PastelRGB',
type: "Get",
success: function (data) {
$(this).css({
"background-color": data.hex
});
//$("#color1p").text(data.hex);
},
error: function (jqXHR, err) {
LogError(err);
}
});
});
});
我的HTML看起来像这样
<div><input type="button" id="generateColors"/></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
<div class="color" style="width:200px;height:200px;background-color:white;"></div>
css只是不适用于div
我正在学习HTML JS和CSS,所以任何帮助都会很好
问候,Mick
这
中的成功
不是指你的元素,而是指成功的范围
记住变量中的元素,然后使用它而不是此元素
$("#generateColors").click(function () {
$('.color').each(function () {
var element = this
$.ajax({
url: '/Pastel/PastelRGB',
type: "Get",
success: function (data) {
$(element).css({
"background-color": data.hex
});
},
error: function (jqXHR, err) {
LogError(err);
}
});
});
});
或者只使用每个参数
.each(function (index,element) { ...
这
在success
的内部并没有引用您的元素,而是引用了success范围
记住变量中的元素,然后使用它而不是此元素
$("#generateColors").click(function () {
$('.color').each(function () {
var element = this
$.ajax({
url: '/Pastel/PastelRGB',
type: "Get",
success: function (data) {
$(element).css({
"background-color": data.hex
});
},
error: function (jqXHR, err) {
LogError(err);
}
});
});
});
或者只使用每个参数
.each(function (index,element) { ...
这可以在客户端完成。做
“#”+Math.random().toString(16)。子字符串(2,8)
往往工作得很好。因此,改变:
$(this).css({
"background-color": data.hex
});
致:
这可以在客户端完成。做
“#”+Math.random().toString(16)。子字符串(2,8)
往往工作得很好。因此,改变:
$(this).css({
"background-color": data.hex
});
致:
您可以定义一个简单的函数getColor()来生成随机颜色: 在此函数中,我们使用ASCII码数组
您可以定义一个简单的函数getColor()来生成随机颜色: 在此函数中,我们使用ASCII码数组
为什么不发出一个ajax请求,返回一个随机颜色的数组(长度
$('.color').length
),然后调用each()来分配颜色?这里需要使用ajax吗?您可以完全在客户端生成随机颜色。至少有两件事是错误的:1)您在每次单击时同时进行十次ajax调用,2)然后您将颜色分配给$(this)
,这是ajax成功函数,而不是HTML元素。为什么不发出一个返回数组(长度$(“.color”).length
)的随机颜色,然后调用each()来分配颜色?这里是否需要使用AJAX?您可以完全在客户端生成随机颜色。至少有两件事是错误的:1)每次单击都同时进行十次AJAX调用,2)然后将颜色分配给$(此)
,这是ajax成功函数,而不是HTML元素。