2012-06-06 49 views
0

的Ajax調用兩次在我下面的代碼調用兩次我使用Fiddler檢查它,以及螢火蟲..Ajax和jQuery Mobile的

我讀了所有相關的問題,但力找到解決辦法....下面是我的代碼..

我還檢查onclick事件也開火兩次..

<head> 

<meta charset="utf-8" /> 
<meta name="viewport" content="width=device-width, initial-scale=1" /> 
<meta name="format-detection" content="telephone=no" /> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" /> 
<link rel="stylesheet" href="css/jqmd.css" /> 

<script src="js/jm.js" type="text/javascript"></script> 

<script src="js/json2.js" type="text/javascript"></script> 

</head> 
     <body>  

     </body> 
<script language="javascript"> 

    function pp() { 
     $.ajax({ 

      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      url: "cont.aspx/getP", 
      data: "{gt: '',cid: ''}", 
      success: function(r) { 
       alert('test'); 
      } 
     }); 
    } 

    setTimeout("pp()", 2000); 
    </script> 

+0

您應該添加一個應該觸發點擊事件能夠給一個更好的答案 – davidaam

+0

我希望它2秒後運行的元素。的頁面加載 – samirprogrammer

+0

我剛剛看到setTimeout:P – davidaam

回答

0
var t=''; 
function pp() { 
     $.ajax({ 

      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      url: "cont.aspx/getP", 
      data: "{gt: '',cid: ''}", 
      success: function(r) { 
       alert('test'); 
      } 
     }); 
clearTimeout(t); 
    } 

t= setTimeout("pp()", 2000); 
+0

感謝tanducar ..它工作正常......但onchange仍然發射兩次.. $('#btn1')。change(function(){ pp(); }); – samirprogrammer

+0

在調用pp()函數之前檢查e.type。 $('#btn1')。change(function(e){e.type .. pp();}) –

+0

你可以給它代碼嗎? – samirprogrammer

0

在完成ajax調用後將布爾值設置爲true,如果值已更改,那麼它將不會運行。試試這個:

<script language="javascript"> 
    var j; 
    function pp() { 
     if (j !== true) { 
      $.ajax({ 

       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       url: "cont.aspx/getP", 
       data: "{gt: '',cid: ''}", 
       success: function(r) { 
        alert('test'); 
       } 
      }); 
     } 
      j = true; 
     } 

     setTimeout("pp()", 2000); 
     </script>