如何禁用使用jQuery单击事件后发生的功能

时间:2014-11-19 18:23:56

标签: javascript jquery

我的页面上有一个按钮,当单击该按钮时,会侦听另一个被单击的按钮,然后执行AJAX调用。例如:

$( 'button#a' ).click( function() {

    $( 'button#b' ).click( function() {
        // Perform an AJAX call here.
    });

});

以下是我的代码演示:

DEMO

我想禁用ajax调用功能如果在页面加载期间随时点击第三个按钮button#c。我对如何做到这一点感到茫然。希望有人能提出建议。

3 个答案:

答案 0 :(得分:1)

不应在点击内部编码点击事件,而是在修改代码后编码。

var third_click= false; 
$(document).ready(function() {
    $( 'button#c' ).click( function() {
        third_click = true;
    })

    $( 'button#a' ).click( function() {

        $( 'button#b' ).click( function() {
            if( !third_click ) {
                // Perform an AJAX call here.
                alert( 'ajax call in progress' );
            } else {
                alert( 'Can\'t call ajax' );
            }
        });

    });
})

here是演示。

答案 1 :(得分:0)

如果您使用按钮a隐藏按钮b,直到单击a然后显示按钮b等等,直到结果显示为您,该怎么办。

示例:

  $('.btnB').hide();

 $('.btnA').on('click', function() {
  $('.btnB').toggle();
});

除非需要一次全部显示,否则此方法无法在这种情况下工作

答案 2 :(得分:0)

点击#c with:

时,您可以从#a和b#中删除点击事件
$('#c').click(function () {
    $('#a,#b').off('click')
})

<强> jsFiddle example