5

要素のクリックイベントを有効/無効にしたい。次のコードがあります...

HTML:

<a id="CP" style="cursor: pointer; text-decoration: underline;">Current Processes</a>

jQuery:

$(document).on("click", "#CP", function(event) {
    $this = $(this);
    $this.click(function() {
        return false;
    });
    $this.html("Processing...").css({
        "text-decoration": "none",
        "cursor": "default"
    });
    $.ajax({
        type: 'post',
        url: 'abc.jsp',
        success: function(process) {
            //My code goes here...
            $this.on("click"); //  Here i want to bind or add handler which is fired previously.
        }
    });
});
4

6 に答える 6

7

AJAX リクエストを実行するときにいくつかのクラスを追加します。完了したら削除します。リンクにこのクラスがある場合は何もしません。

$(document).on("click", "#CP", function(event) {
    event.preventDefault();
    $a = $(this);
    if($a.hasClass('disabled')) {
        return false;
    }

    $a.html("Processing...").addClass('disabled');
    $.ajax({
        type: 'post',
        url: 'abc.jsp',
        success: function(process) {
            $a.removeClass('disabled');

            // restore inner HTML here
        }
    });
});
于 2015-05-09T22:43:37.310 に答える
0

$this.on("click")- これは事実上: 「何もしない $this にクリック ハンドラーをバインドする」

イベントをトリガーするには:$this.click()または$this.trigger("customEvent")

于 2013-07-03T11:51:27.900 に答える
0
var eventhandler = function() {

    $(document).unbind("click");
    $this.html("Processing...").css({
        "text-decoration": "none",
        "cursor": "default"
    });
    $.ajax({
        type: 'post',
        url: 'abc.jsp',
        success: function(process) {
            //My code goes here...
            //Here i want to bind or add handler which is fired previously.
            $(document).click(eventhandler); 
        }
    });
}


jQuery(document).click(eventhandler);
于 2014-09-05T09:50:00.967 に答える