2012-06-06 3 views
0

Ajax звонит дважды в моей ниже коде я проверил его с Скрипач, а поджигатель ..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

проверьте e.type перед вызовом функции pp(). $ ('# btn1'). change (function (e) {e.type .. pp();}) –

+0

Вы не можете дать код? – samirprogrammer

0

Что касается установки логического значения в значение true после выполнения вызова ajax, если значение было изменено, то оно не будет запущено. Попробуйте это:

<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>