2016-01-20 52 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

相关问题