簡體   English   中英

如何使用jQuery禁用單擊事件后發生的功能

[英]How to disable functionality that takes place after a click event using jQuery

我的頁面上有一個按鈕,當單擊該按鈕時,它會監聽另一個被單擊的按鈕,然后執行AJAX調用。 例如:

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

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

});

到目前為止,這是我的代碼的演示:

DEMO

我想禁用Ajax調用功能,如果第三個按鈕button#c的過程中加載頁面時點擊在任何時間。 我不知道該怎么做。 希望有人可以建議一種方法。

不應在click內編寫click事件的代碼,而應在修改代碼后進行。

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#中刪除點擊事件:

$('#c').click(function () {
    $('#a,#b').off('click')
})

jsFiddle示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM