0

だから私はアンカータグのクリックで何かをするjquery関数を持っています.今、私はその後のクリックでjqueryに反応しないボタンを作りたいです。私は何をすべきか?私がやっていることは、最初のクリックでアンカー タグの innerHTML を変更し、AJAX 呼び出しを行うことです。この期間中、ユーザーが同じアンカー タグを再度クリックしても何も起こらないようにします。

これは、jqueryを介してクリックを処理する方法です

  $('.profileEdit label a').live('click', function () {
     // do something
  });
4

2 に答える 2

2

あなたが望むものを理解していれば、ajax呼び出しの前に「onclick」属性を削除し、最後に再度設定することができます(成功または失敗)。

@EDIT: 最終的なソリューション コード

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: http://jsfiddle.net/V3AAF/

bb 要素はアンカーではなくボタンです

于 2013-04-30T23:57:50.307 に答える
1

アクションを最初のクリックで 1 回だけ実行したい場合は、 one()を使用できませんか?

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

jsFiddle の例。

于 2013-04-30T23:54:32.153 に答える