Javascript 使用单击按钮更改背景图像(使用jQuery和API)

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){

我使用的API将随机URL返回到随机图像,并将其设置为身体的背景图像。我怎样才能在每次点击按钮后改变它?我有下面的代码,但那不起作用

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','');