我有一个带有几个'a'标签的html,它调用特定的页面,我添加了一个onclick attritbute,其中根据点击的链接发生背景更改的功能。 这是html
<ul>
<li><a href="index.php?page=Home " onclick="changeImage(1);">Home</a> </li>
<li><a href="index.php?page=Achivement" onclick="changeImage(2); ">Achivement</a></li>
<li><a href="index.php?page=Career" onclick="changeImage(3); return false;">Career</a></li>
<li><a href="index.php?page=Message" onclick="#">Message</a></li>
<li><a href="index.php?page=opportunity">opportunity</a></li>
<li><a href="upload1.php">Register</a>
<li></li>
</ul>
和定义函数的javascript文件。
function changeImage(number)
{
$.post('core/changebg.php',{number:number},
function(data)
{
$('body').css('background-image','url("image/'+number+'.jpg")');
});
}
和它引用的php文件
<?php
if(isset($_POST['number']))
{
session_start();
$_SESSION['image']=$_POST['number'];
}
if(isset($_GET['resetBg'])){
session_start();
session_destroy();
}?>
我陷入困境,因为如果我清空href元素,那么这段代码完全按照我想要的方式工作但是,我也希望页面调用以及它无法工作的原因是因为页面已经重新加载而无法执行函数,因为我是在其他帖子上说。所以我希望这可以通过1.当我点击一个链接时改变背景图像,2调用页面竞争。我尝试通过javascript重定向,但它仍然无法正常工作。谢谢,任何答案/建议表示赞赏。
答案 0 :(得分:1)
你是以错误的方式解决这个问题。你需要:
让click事件按预期进行,并通过将类应用于body
(首选),内联样式body
(更糟糕)或调用加载JavaScript(最差)。
通过AJAX加载内容并完全跳过页面刷新。
看看你上面做了什么,第二种选择对你来说可能不是一个很好的选择。您当前的AJAX调用很奇怪,因为它似乎对从服务器返回的数据一无所知。也许您已经在使用您正在进行会话的点击链接信息?我无法说出来。