2012-04-29 41 views
0

也许我在这里错过了一些简单的东西,但这令我很沮丧。所以我需要做的是更新我的服务器上的东西,当这个div围绕链接点击(我正在点击通过分析)。我想我会做点击事件,并做一个Ajax调用(通过get)。加载新页面之前Ajax调用不运行

$.get("stat/418491289); 

但问题是,没有进行调用。用户正在被发送到下一页,而不是调用get call未完成/被调用。我会知道,因为在服务器上它会更新数据库。也许我不应该打一个Ajax电话,或者我应该做的事情,但我不知道。现在我暂时不能挂起链接动作,因为它被包装在div中。我想做的最好的事情就是解除请求,然后不用担心。更新统计数据并不重要,所以如果1%的时间无法正常工作,那就更好了。我将如何做到这一点?

我猜我可能不清楚。我问的是:在浏览器进入链接页面之前,我可以通过javascript向我的服务器发出请求吗?我不在乎答案是什么,我只需要发送请求。

+0

那岂不是更容易因为你可以将你的锚标签的'href'从'example.com'修改为'example.com?ref = page1'。然后在用户导航到下一页后,检查'ref'参数来更新您的分析。这也可以在没有JS的情况下工作。 – xbonez

+0

红色,3nigma更新评论。我认为这是根据你的要求。 –

回答

2

如果我已经清楚地理解这个问题,你需要使用preventDefault序取消链接的默认行为像

$("#linkID").click(function(e){ 
e.preventDefault(); 
//ajax call here 
}); 

或放return false;

$("#linkID").click(function(){ 

    //ajax call here 
    return false; 
    }); 
1

您是否检查过该网页的网络流量,以查看get请求是否已完成(vs未由服务器处理)?也许这个网址是不正确的,你会收到一个404响应。

它也可能是你如何处理点击事件。如果您从div点击处理程序发出ajax请求,并且用户正在点击链接(),则链接将处理首先将用户带到页面的点击。我不确定默认链接处理程序是否将点击传播到父元素。

如果这是问题,可能会更容易看到一些代码来帮助找到问题。

1

您的网址缺少第二个引号。

相关问题