2015-05-24 76 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(){} 
    })});