作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码让用户通过单击按钮更改正文背景图像:
<script>
$(document).ready(function() {
$(".button1").click(function() {
$("body").css("background-image", "url('')");
});
});
</script>
确实有效,但是当我点击文章进入文章页面时,body background-image 又变回了之前的图片。那么如何通过单击按钮进行永久更改。非常感谢。
最佳答案
你需要做的是,你需要在 session/cookie 中存储一个标志变量来检查用户是否单击了按钮以更改为背景图像。
当您重新加载页面或重定向到其他页面时,您需要获取该 session /cookie 值,并根据其值设置 <body>
的背景图像。 .
这是你可以得到你想做的事情的代码:
jQuery 代码:
jQuery(document).ready(function() {
call_Ajax_get_set_session('get');
jQuery(".button1").click(function() {
call_Ajax_get_set_session('set');
});
});
function call_Ajax_get_set_session(value){
data = {
action : 'setBgImage',
method : value
};
// first parameter will be the ajax url.
jQuery.post('<?php echo admin_url( 'admin-ajax.php' );?>', data, function(response) {
response = jQuery.parseJSON(response);
if(response.success == '1'){
jQuery("body").css("background-image", "url('')");
}
});
}
事件主题的 Function.php 文件中的 PHPCode:
add_action( 'wp_ajax_nopriv_setBgImage', 'setBgImage' );
add_action( 'wp_ajax_setBgImage', 'setBgImage' );
function setBgImage() {
$method = $_POST['method'];
if(session_id() == '') // check session has already start or not
{
session_start();
}
if($method == 'set'){
$_SESSION['setBgImage'] = '1';
echo json_encode(array('success' => 1));
exit;
}
else if($method == 'get'){
if(isset($_SESSION['setBgImage']) && $_SESSION['setBgImage'] == '1'){
echo json_encode(array('success' => 1));
exit;
}
else{
echo json_encode(array('success' => 0));
exit;
}
}
echo json_encode(array('success' => 0));
exit;
}
如果您在这方面需要更多帮助,请告诉我们。
谢谢!
关于jquery - 如何在 wordpress 中使用 jQuery 或其他方法永久更改背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088634/
我是一名优秀的程序员,十分优秀!