JQuery Mobile Caching问题,除非重新加载页面,否则onClick不会被触发

时间:2011-09-02 19:03:43

标签: jquery jquery-mobile

好的,首先让我说我假设这与缓存有关。但我不是百分百肯定

我正在移动网站上工作,您可以查看here

问题是退出,请准确点击退出按钮。

如果用户登录,导航到网站上的任何页面,然后尝试单击注销(请参阅下面的功能),他们什么也得不到。没有帖子,没有重新定位,如果我在功能中发出警报则不会运行。没有。除非用户重新加载页面并尝试注销。

function submitLogout(){
    $.post("../server/log.php", { uaction: "logout" },function(data){
        window.location = "/index.php";
    }); 
}

重现的步骤:

  1. 访问this website
  2. 点击登录
  3. 使用用户名 foo 密码
  4. 登录
  5. 导航至所提供的任何链接。
  6. 点击退出
  7. 现在,如果您确实希望按预期看到函数调用,只需重新加载页面并单击注销。

    或者,在步骤4中,不是导航而是单击“注销”

    ** 再次澄清 ** submitLogout函数从未实际运行;如果我将功能更改为

    function submitLogout(){
        alert("wtf");
        $.post("../server/log.php", { uaction: "logout" },function(data){
            window.location = "/index.php";
        }); 
    }
    

    永远不会调用警报。如果我不知道相对路径有问题。这个帖子从未被调用过。我在函数上添加了断点,我可以确认它永远不会输入。

1 个答案:

答案 0 :(得分:1)

您使用log.php的相对引用:"../server/log.php"

你可以依赖相对路径,但总是想到会有什么参考。在这种情况下,它是当前URL(客户端)的位置,而不是JS文件的路径。

在您的情况下,解决方案包括将..部分替换为/bin,这是您的端点所在的文件夹。

以下是完整的解决方法:

function submitLogout() {
  alert('submitLogout is triggered');
  $.post("/bin/server/log.php", { uaction: "logout" },function(data){
    window.location = "/index.php";
  }); 
}