所以我有一个 jquery 函数,可以在单击锚标记时执行某些操作。现在我想让按钮在后续单击时对 jquery 无响应。我应该怎么办?我正在做的是在第一次单击时更改锚标记的 innerHTML 并进行 AJAX 调用,在此期间,当用户再次单击相同的锚标记时,我不希望发生任何事情。
这就是我通过 jquery 处理点击的方式
$('.profileEdit label a').live('click', function () {
// do something
});
所以我有一个 jquery 函数,可以在单击锚标记时执行某些操作。现在我想让按钮在后续单击时对 jquery 无响应。我应该怎么办?我正在做的是在第一次单击时更改锚标记的 innerHTML 并进行 AJAX 调用,在此期间,当用户再次单击相同的锚标记时,我不希望发生任何事情。
这就是我通过 jquery 处理点击的方式
$('.profileEdit label a').live('click', function () {
// do something
});
如果我了解您想要什么,您可以在 ajax 调用之前删除“onclick”属性并在最后重新设置(成功或失败)。
@EDIT:最终解决方案代码
function update(){
$("#bb").html('Updating');
$("body").off('click',"#bb");
$.ajax({
type: "POST",
url:"profileUpdate.asmx/HelloWorld",
data: "{ 'value': '" + document.getElementById(string).value + "'" + ",'column':'" + string + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
defaultSetter();
},
error: function (msg) {
defaultSetter();
}
});
}
function defaultSetter(){
$("#bb").html("Test");
$("body").on('click','#bb', update);
}
$(document).ready(function(){
defaultSetter();
});
jsfiddle:http: //jsfiddle.net/V3AAF/
如果您只希望操作在第一次单击时发生一次,您不能只使用one()吗?
$('.profileEdit label a').one('click', function () {
alert('This will only alert on the first click');
});
如果您在该元素上发生了进一步点击的处理程序,只需使用 return false,以防止在第一次点击后发生任何事情:
$('a').on('click', function () {
return false;
alert('first time!');
});