我试图让页面主体的背景图像每(大约)N 秒更改一次。为此,我有一个 PHP 函数,当我使用 AJAX 调用它时,它会回显随机图像 src。然后我用这个新生成的替换当前的身体背景图像 src,但我无法让它工作。
这是代码,它有什么问题吗?
(function($) {
var $body = $('body');
window.setInterval(function() {
$.ajax({
url: 'http://localhost/some_path/index.php?exec=getNewBkgImgSrc',
}).done(function(data) {
var newImage = new Image();
newImage.onload = function() {
$body.css('background-image', newImage.src);
};
newImage.src = data;
});
}, 5000);
})(window.jQuery);
和有效的 PHP 函数:
public function getNewBkgImgSrc() {
echo CONTENT_URL_DIR.'/Wallpapers/wallpaper ('.rand(1, 20).').jpg';
}
这可能是因为我使用的是 localhost 吗?当我在本地开发之前,我可以记住有 AJAX 问题。
编辑:一个线索可能是 body 元素的样式属性似乎没有在 Firebug 中更改/设置。我也尝试$('body').first()
并$(document.body)
使用url("")
(在 background-image 属性的值中),但它也不起作用。然而,onload 事件确实会触发。
谢谢你的帮助。