当我第一次点击Button
时func1
效果很好,但是当我再次点击它时它不起作用。
即使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 :(得分:0)
尝试添加func1&#34;完成:function(){}&#34;成功后
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(){}
});
答案 1 :(得分:0)
而不是删除on点击并在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(){}
})});
答案 2 :(得分:0)
使用Jquery取消附加onclick事件然后附加
//This functions makes sure that madatory fields are filled
function madatorychk (fieldid) {
var node = document.myForm.fieldid;
if (node.value == "" ) {
alert("This field cannot be left empty");
document.myForm.fieldid.focus() ;
return false;
}
function validate(){
madatorychk(name);
}
重复$(document).off.on('click', 'ButtonId', func1(1));
本身