2015-05-24 110 views
1

當我點擊Button第一次func1工作正常,但是當我再次點擊它不起作用。javascript onclick方法只能工作一次

即使alert('func1')不起作用

我在做什麼錯?

function func2(id) { 
 
    $.ajax({ 
 
     url: "url2", 
 
     type: "POST", 
 
     data: { 
 
      id: id, 
 
     }, 
 
     cache: false, 
 
     dataType: 'json', 
 
     success: function (data) { 
 
      if (data.status == 'success') { 
 
       //do something 
 
      } else { 
 
       //do something 
 
      } 
 
     }, 
 
     complete: function (XMLHttpRequest, status) { 
 
      // 
 
     } 
 
    }); 
 
} 
 

 
function func1(id) { 
 
    alert('func1'); 
 
    var flag = false; 
 
    $.ajax({ 
 
     url: "url1", 
 
     type: "POST", 
 
     data: { 
 
      id: id, 
 
     }, 
 
     cache: false, 
 
     async: false, 
 
     dataType: 'json', 
 
     success: function (data) { 
 
      if (data.status == 'false') { 
 
       //do something 
 
       flag = true; 
 
      } 
 
     }, 
 
    }); 
 

 
    if (flag) { 
 
     func2(id); 
 
    } 
 
}
<a id="xx_1" onclick="func1(1);">Button</a> 
 
<a id="xx_2" onclick="func1(2);">Button</a> 
 
.... 
 
<a id="xx_n" onclick="func1(n);">Button</a>

+0

您能不能告訴你的按鈕onlclick代碼 –

+0

FUNC1()是的onclick代碼 –

+0

您是否在控制檯中收到任何錯誤消息? – FrankerZ

回答

0

嘗試增加在FUNC1 「完整:函數(){}」 成功

function func1(id) {alert('func1'); 
    var flag = false; 
    $.ajax({ 
     url : "url1", 
     type : "POST", 
     data:{ 
      id : id, 
     }, 
     cache : false, 
     async : false, 
     dataType : 'json', 
     success : function(data) { 
      if(data.status == 'false') { 
       //do something 
       flag = true; 
      } 
     }, 
     complete: function(){} 
    }); 
+0

我試過這個,但它不起作用 –

0

的而不是刪除上點擊做jQuery的如下,這會爲您的按鈕註冊事件。

$(document).on('click', '#YOUR_BTN_ID', function({ 
    var flag = false; 
    $.ajax({ 
     url : "url1", 
     type : "POST", 
     data:{ 
      id : id, 
     }, 
     cache : false, 
     async : false, 
     dataType : 'json', 
     success : function(data) { 
      if(data.status == 'false') { 
       //do something 
       flag = true; 
      } 
     }, 
     complete: function(){} 
    })});