From jQuery 1.8.8 on, it prefixes for you, so all you'll need to type is
$('#deco').css({
'background-image': 'linear-gradient(to bottom, rgba(0,0,0,0) 80%, rgba(0,0,0,.65) 100%), url(' + img + ')'
})
Also. If you type something like this
$('#deco').css({
'background-image': '-webkit-gradient(linear, left top, left bottom, color-stop(80%, rgba(0,0,0,0)), color-stop(100%, rgba(0,0,0,.65))), url(' + img + ')',
'background-image': '-webkit-linear-gradient(top, rgba(0,0,0,0) 80%, rgba(0,0,0,.65) 100%), url(' + img + ')',
'background-image': ' -moz-linear-gradient(top, rgba(0,0,0,0) 80%, rgba(0,0,0,.65) 100%), url(' + img + ')',
'background-image': ' -o-linear-gradient(top, rgba(0,0,0,0) 80%, rgba(0,0,0,.65) 100%), url(' + img + ')',
'background-image': ' linear-gradient(to bottom, rgba(0,0,0,0) 80%, rgba(0,0,0,.65) 100%), url(' + img + ')'
})
The object won't work like you desire in some browsers. You will simply rewrite 'background-image' 4 times, essentially writing useless code.