Javascript 使用单击按钮更改背景图像(使用jQuery和API)
我使用的API将随机URL返回到随机图像,并将其设置为身体的背景图像。我怎样才能在每次点击按钮后改变它?我有下面的代码,但那不起作用Javascript 使用单击按钮更改背景图像(使用jQuery和API),javascript,jquery,api,background-image,Javascript,Jquery,Api,Background Image,我使用的API将随机URL返回到随机图像,并将其设置为身体的背景图像。我怎样才能在每次点击按钮后改变它?我有下面的代码,但那不起作用 function changeImage() { $.getJSON("https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b", function(result){
function changeImage() {
$.getJSON("https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b", function(result){
var randomPhoto = result.urls.full;
console.log(randomPhoto);
$('body').css('background-image', 'url(randomPhoto)');
});
};
我在按钮上使用jqueryclick事件来调用函数
$("#button").on("click", function() {
changeImage();
});
});
函数每次都会用图像加载一个新的JSON对象,但背景图像不会改变…正如DynoMyte建议的那样,您应该这样做:
function changeImage() {
var src = "https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b";
$.getJSON(src, function(result){
$('body').css('background-image', 'url('+ result.urls.full +')');
});
};
正如DynoMyte所建议的,您应该这样做:
function changeImage() {
var src = "https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b";
$.getJSON(src, function(result){
$('body').css('background-image', 'url('+ result.urls.full +')');
});
};
更改此项:
$('body').css('background-image', 'url(randomPhoto)');
为此:
$('body').css('background-image', 'url('+randomPhoto+')');
更改此项:
$('body').css('background-image', 'url(randomPhoto)');
为此:
$('body').css('background-image', 'url('+randomPhoto+')');
实际上,您正在将背景颜色更改为字符串“url(randomPhoto)”。您应该尝试删除引号。执行此操作-$(“body”).css('background-image'、'url('+randomPhoto+'));您正在将背景颜色更改为字符串“url(randomPhoto)”。您应该尝试删除引号。执行此操作-$('body').css('background-image','url('+randomPhoto+'));谢谢大家!!。符号的实际作用是什么?我现在的问题是它只设置了一次背景。这是代码笔(正在工作)。它只是缓存吗?
+
符号用于连接字符串,因为任何加上字符串的东西都是字符串。我们需要计算对象的字符串属性result.url.full
,以便将包含的数据(完整字符串url)传递到css()
。顺便说一句,如果你有缓存ish问题,你可以在添加新的bg之前删除当前bg:$(body.css('background-image','');
。谢谢大家!!。+符号实际上做什么?我现在的问题是它只设置了一次背景。这是代码笔(正在进行中)。它只是缓存吗?+
符号用于连接字符串,因为任何加上字符串的东西都是字符串。我们需要计算对象的字符串属性result.url.full
,以便将包含的数据(完整字符串url)传递到css()
。顺便说一句,如果您有缓存ish问题,可以在添加新bg之前删除当前bg:$(body.css('background-image','');
。