2012-07-11 23 views
5

我試圖下面的網址:發送AJAX上點擊,但還是去HREF

當用戶點擊一個鏈接,我想通過Ajax更新一個特定表的數據庫中的特定列。但我仍然希望用戶被重定向到鏈接的href="<url>"

我試過jQuery沒有return false;,但然後ajax不起作用。

我試過return false;,但是頁面顯然沒有重定向到我想要的url。

在此先感謝您的幫助。

回答

11

執行您的AJAX調用,然後在完成時設置document.location

$('a').click(function(e){ 
    var href = this.href; // get href from link 
    e.preventDefault(); // don't follow the link 
    $.ajax({ 
     url: '/path/to/site', 
     data: {some: data}, 
     success: function(){ 
      document.location = href; // redirect browser to link 
     } 
    }); 
}); 
+1

了window.location = HREF;會更好。保持歷史記錄,我認爲document.location僅用於gecko(firefox)瀏覽器上的重定向。 (不知道這個) – elvispt 2012-07-11 22:32:10

+0

非常感謝! – user1519235 2012-07-12 14:54:18

+0

不客氣。很高興我可以幫助:-) – 2012-07-12 14:55:05

0

您需要自己序列化這些操作。在事件處理程序首先運行您的AJAX請求,然後從標記中查找href並使用位置重定向將客戶端轉移到該URL。

0

把重定向代碼在成功回調:

$.ajax({ 
    ... 
    success: function(){ 
    $(location).attr('href',url); // You URL inserted 
    } 
}); 
+0

我從來沒有見過'$(location).attr('href',url);'之前。似乎工作,但我更喜歡'document.location = url;'。它不需要調用jQuery的開銷。 – 2012-07-11 22:30:18

+0

@火箭真。一種可能性,但你的答案可能會更簡單。 – Steeven 2012-07-11 22:31:41