Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery禁用单击事件后发生的功能_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何使用jQuery禁用单击事件后发生的功能,javascript,jquery,Javascript,Jquery,我在我的页面上有一个按钮,当被点击时,它会监听另一个被点击的按钮,然后执行AJAX调用。例如: $( 'button#a' ).click( function() { $( 'button#b' ).click( function() { // Perform an AJAX call here. }); }); 以下是我迄今为止的代码演示: 如果在加载页面期间的任何时候单击第三个按钮按钮#c,我想禁用ajax调用功能。我不知道如何才能做到这一点。希望有人

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

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

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

});
以下是我迄今为止的代码演示:


如果在加载页面期间的任何时候单击第三个按钮
按钮#c
,我想禁用ajax调用功能。我不知道如何才能做到这一点。希望有人能提出一种方法。

不应该在单击中对单击事件进行编码,而是在修改代码后进行编码

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' );
            }
        });

    });
})

是演示。

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

例如:

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

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

除非需要一次显示所有内容,否则此方法将无法在该类型的情况下工作

您只需在单击c时从a和b中删除单击事件,方法是:


在演示中,依次单击按钮a、按钮c和按钮b。AJAX调用启动。我不想这样,因为按钮c被点击。“不应该在点击中编码点击事件”-为什么会这样?@henrywright我认为这不被认为是“好的编码”。。。但是如果你想避免这种情况,你可以用
按钮a
做与上面代码中的
按钮c
差不多的事情:
$('#c').click(function () {
    $('#a,#b').off('click')
})