2016-01-20 50 views
-2

我試圖創建一個鏈接,點擊後不會重定向,但會執行一個動作,然後使用jquery刷新頁面。當我使用javascript時,javascript不顯示警報:window.location.reload()

<a href="link.php?id=1" id="btnClick">Click Me</a> 

<Span id="updateMe">1</span> 

jQuery的

$('#btnClick').click(function(e){ 
    url = $(this).attr('href'); 
    $.ajax({ 
     url: url, 
     success: function(){ 
      alert("succes alert 1 worked"); 
     } 
    }); 

    $.ajax({ 
     url: "another_url.php", 
     success: function(data){ 
      $("#updateMe").html(data); 
     } 
    }); 
    javascript:window.location.reload(); 
}); 
+1

'e.preventDefault();'你應該把你的重定向在'success'回調,因爲它會火的時候了,否則。 – jeroen

+1

這與php – messerbill

+0

無關因爲頁面退出並且調用還沒有回來。另外,標籤'javascript:'是無用的。 – epascarello

回答

0

做這些:

  1. 添加e.preventDefault();停止重裝。
  2. reload()移至success回調。
  3. 擺脫javascript:。你已經在裏面了。

更正代碼:

$('#btnClick').click(function(e) { 
    e.preventDefault(); 
    url = $(this).attr('href'); 
    $.ajax({ 
    url: url, 
    success: function() { 
     alert("succes alert 1 worked"); 
     window.location.reload(); 
    } 
    }); 

    $.ajax({ 
    url: "another_url.php", 
    success: function(data) { 
     $("#updateMe").html(data); 
     window.location.reload(); 
    } 
    }); 
}); 
+1

仍然有問題,並且警報不會觸發,並且是重新加載。原因:OP正在點擊一個鏈接。鏈接將導航。另外還有兩個Ajax調用,所以你也有一個競爭條件......正確的答案需要承諾並取消鏈接點擊。 – epascarello

+0

@epascarello同意。那麼最好的方法是什麼?我正在刪除我的答案。 –

+1

將兩個Ajax調用包裝在$ .when()。then() – epascarello

相關問題