Javascript 如果用户提供链接,请更改身体的背景图像
我已经创建了一个表单来存储用户背景图片的url,如果他们想更改默认图像。我正在使用gon gem使其可用于Javascript。我试图让它工作,这样,如果用户在他们的背景图片数据库列中有一个链接,它应该应用于身体的背景图像元素,对于那些没有它的人应该有默认的图像 我已经设法更改了完成表单的用户的背景图像,但是对于其他用户,它没有显示默认图像。这就是我所做的,让它对数据库中有链接的用户起作用 index.html.erbJavascript 如果用户提供链接,请更改身体的背景图像,javascript,jquery,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,我已经创建了一个表单来存储用户背景图片的url,如果他们想更改默认图像。我正在使用gon gem使其可用于Javascript。我试图让它工作,这样,如果用户在他们的背景图片数据库列中有一个链接,它应该应用于身体的背景图像元素,对于那些没有它的人应该有默认的图像 我已经设法更改了完成表单的用户的背景图像,但是对于其他用户,它没有显示默认图像。这就是我所做的,让它对数据库中有链接的用户起作用 index.html.erb <% if current_user.background_pictu
<% if current_user.background_picture != :null %>
<% @gon.backgroundPicture = current_user.background_picture %>
<% end %>
$(document).ready(function (){
if(gon.backgroundPicture !== "") {
var background = gon.backgroundPicture;
document.body.style.backgroundImage = "url(" + background + ")";
};
});
我的问题基本上是,如果用户的背景图片字段为空,我如何让它显示css文件中的默认背景图片?在if语句中
if(gon.backgroundPicture!==”)
,如果gon.backgroundPicture
未定义,它将计算为true
,我认为这不是你想要的
您可以在javascript中更改if语句,也可以在视图中设置默认值
试试这个:
$(document).ready(function (){
if(gon.backgroundPicture) {
var background = gon.backgroundPicture;
document.body.style.backgroundImage = "url(" + background + ")";
};
});
将整个脚本移动到if块中,并更改条件以检查是否存在图像
<% if current_user.background_picture.present? %>
$(document).ready(function() {
document.body.style.backgroundImage = "url(" + <%= current_user.background_picture %> + ")";
});
<% end %>
$(文档).ready(函数(){
document.body.style.backgroundImage=“url”(“+”);
});
为什么不只是将该图片设为默认图片,而是使用可见性:隐藏的样式,并在脚本中“显示”它,而您可以用它来替换gon.backgroundPicture
?我已经尝试将其他各种语句添加到if语句中,但都不起作用,请您详细说明答案?
<% if current_user.background_picture.present? %>
$(document).ready(function() {
document.body.style.backgroundImage = "url(" + <%= current_user.background_picture %> + ")";
});
<% end %>