设置锚定标记';s href设置为一个值,使其对页面上的javascript/jquery方法无响应

设置锚定标记';s href设置为一个值,使其对页面上的javascript/jquery方法无响应,javascript,jquery,anchor,Javascript,Jquery,Anchor,因此,我有一个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
  });
如果只想在第一次单击时执行一次操作,是否可以不使用

$('.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!');
});

如果只想在第一次单击时执行一次操作,是否可以不使用

$('.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!');
});

如果我了解您想要什么,您可以在ajax调用之前删除“onclick”属性,并在最后再次设置它(成功或失败)

@编辑:最终解决方案代码

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:


bb元素是一个按钮,而不是一个锚如果我了解您想要什么,您可以在ajax调用之前删除'onclick'属性,并在最后再次设置它(成功或失败)

@编辑:最终解决方案代码

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:


bb元素是一个按钮,而不是主播使用
preventDefault()
。您应该使用。使用
preventDefault()
。而不是(它在1.7中被弃用,在1.9中被删除)。我没有使用onclick属性。我通过jQuery处理点击。jQuery注入onclick属性。但是您可以使用jQuery.off()方法来删除onclick事件,而不是removeAttr()。我将使用与我的想法类似的答案进行编辑。删除
href
onclick
属性都不起作用。我仍然能够单击调用juqery函数的锚标记。为了解决这个问题,我更改了锚文本(无论如何我都必须这样做),如果文本被更改,我只返回函数而不做任何事情,然后在ajax函数中更改回文本。令人惊讶的是,jQuery函数没有等待ajax函数完成,即使ajax函数是从jQuery函数内部调用的。因此,jQuery函数将首先完成,然后是ajax。您的代码有点太复杂(许多警报和if-else语句),对我来说,也显示了我想要的东西。检查这个:它不起作用,因为ajax url不存在,但是您可以看到逻辑并应用到您的应用程序上进行测试。我还使用了按钮而不是锚定,因为我认为它更合适我没有使用onclick属性。我通过jQuery处理点击。jQuery注入onclick属性。但是您可以使用jQuery.off()方法来删除onclick事件,而不是removeAttr()。我将使用与我的想法类似的答案进行编辑。删除
href
onclick
属性都不起作用。我仍然能够单击调用juqery函数的锚标记。为了解决这个问题,我更改了锚文本(无论如何我都必须这样做),如果文本被更改,我只返回函数而不做任何事情,然后在ajax函数中更改回文本。令人惊讶的是,jQuery函数没有等待ajax函数完成,即使ajax函数是从jQuery函数内部调用的。因此,jQuery函数将首先完成,然后是ajax。您的代码有点太复杂(许多警报和if-else语句),对我来说,也显示了我想要的东西。检查这个:它不起作用,因为ajax url不存在,但是您可以看到逻辑并应用到您的应用程序上进行测试。我也用了按钮而不是锚,因为我觉得它更合适